我有一個字符串,我希望它的子字符串從第5個位置到最後一個位置。我應該使用哪個功能?如何在c中使用substring函數?
回答
可以使用memcpy()
功能,該功能在string.h
頭文件。
memcpy()
在內存塊(有時稱爲緩衝區)之間複製數據字節。這個函數並不關心被複制的數據的類型 - 它只是簡單地進行逐字節拷貝。函數原型是
void *memcpy(void *dest, void *src, size_t count);
參數dest和src分別指向目標和源存儲器塊。 count指定要複製的字節數。返回值是dest。
如果兩塊內存重疊,則該功能可能無法正常運行 - src中的某些數據在複製之前可能會被覆蓋。使用下面討論的memmove()
函數來處理重疊的內存塊。將在下面的程序中演示memcpy()
。
您還可以找到在這裏爲這些函數的一個例子:http://www.java-samples.com/showtutorial.php?tutorialid=591
如果您不會將原始字符串用於其他任何內容,則可以直接使用&s[4]
。如果你需要一個副本,做
char new_str[STR_SIZE + 1] = {0};
strncpy(new_str, &s[4], STR_SIZE);
如果我理解正確的話,你需要使用一些分隔符,爲了分手的子字符串。比如「一二三」打破了一二三。如果是這樣的話:
#include <stdio.h>
#include <string.h>
int main()
{
char test[] = "one#two#three";
char* res;
res = strtok(test, "#");
while(res) {
printf("%s\n", res);
res = strtok(NULL, "#");
}
return 0;
}
您使用要標記的字符串調用strtok()一次。以下每個調用都應該傳遞NULL,以便繼續第一次調用該字符串。 另外請注意,strtok可能會修改原始指針,因此如果它是動態分配的,則應在將它傳遞給strtok之前保存它。
我沒有任何分隔符,我也不想寫任何額外的代碼,因爲它會被視爲冗餘。我想使用任何庫函數。 – maddy2012
strtok()是庫函數,但我誤解了你的問題,所以我的帖子是不相關的。抱歉。 –
如果你也知道字符串中的字符從你想要得到的子串,那麼你可以使用strstr函數。它查找子字符串。但是如果你不知道你要檢索的字符,那麼你可以使用strcpy或strncpy來獲取Eric所提到的字符串。
- 1. 如何使用Substring函數在C#
- 2. 如何使用.Substring?
- 3. 如何在c中使用C++函數?
- 4. 同時使用charindex,max,substring/right函數
- 5. 複雜的使用Substring函數
- 6. XPath函數:substring,substring-after with XPathNavigator.Select
- 7. SUBSTRING()在C#
- 8. 如何在c中使用mmap()函數
- 9. 如何在c函數中使用malloc?
- 10. 如何在C#中使用函數D3DXSaveSurfaceToFile()
- 11. 如何在C++中使用類函數?
- 12. 如何在C++中使用isspace函數?
- 13. 如何在C#中使用report.ExportToStream函數
- 14. 如何在c#中使用Financial.NPV()函數
- 15. C++:如何在函數中使用%i?
- 16. c#如何寫「if contains substring」?
- 17. 在Java中使用substring()
- 18. .substring錯誤:「不是函數」
- 19. 如何使用substring函數獲取SAS中單詞的最後部分?
- 20. 如何使用Doxygen的在我的函數中的C++函數
- 21. 如何編寫在C++中使用其他函數的函數
- 22. sql服務器中的SubString函數
- 23. 在c中使用函數#
- 24. 如何從c中使用mount函數?
- 25. 如何使用函數中的值C
- 26. 如何使用glDrawVertex()函數在ANSI C
- 27. 如何使用SQL COUNT函數在C#
- 28. 如何使用EXECL()函數在C
- 29. 如何在.net(C#)中使用dll中的C函數?
- 30. Objective c Substring
'strncpy()',儘管它的名字,被設計用於處理未終止的字符數組。您的代碼可能會在沒有'\ 0'的情況下離開'new_str'。添加'new_str [STR_SIZE] = 0'或確保您有足夠的空間並使用'strcpy()'。 – pmg
固定。謝謝。 –