我有一個整數值的字符串。例如20 200 2000 21 1如何從字符串中刪除第一個字c
我想刪除第一個單詞(在這種情況下爲20)。任何想法如何做到這一點?
我想過用類似...
sscanf(str, "/*somehow put first word here*/ %s", str);
我有一個整數值的字符串。例如20 200 2000 21 1如何從字符串中刪除第一個字c
我想刪除第一個單詞(在這種情況下爲20)。任何想法如何做到這一點?
我想過用類似...
sscanf(str, "/*somehow put first word here*/ %s", str);
如何
char *newStr = str;
while (*newStr != 0 && *(newStr++) != ' ') {}
你可以跳過所有字符的第一空間,然後跳過空間本身,就像這樣:
char *orig = "20 200 2000 21 1";
char *res;
// Skip to first space
for (res = orig ; *res && *res != ' ' ; res++)
;
// If we found a space, skip it too:
if (*res) res++;
此代碼段打印200 2000 21 1
(link to ideone)。
您可以使用strchr()
,這將設置str
到第一個空格之後的子字符串,或者如果沒有空格,則將其保留;
char *tmp = strchr(str, ' ');
if(tmp != NULL)
str = tmp + 1;
我發現的最簡單,最優雅的方式是做這樣的事情
int garbageInt;
sscanf(str, "%d %[^\n]\n",&garbageInt,str);
你可以只檢查0擺脫strlen的考驗!= *中newstr。 –
更好,謝謝。 – DrummerB