在這裏,我有一個字符arrray,其中有一些分離器在那裏。我如何從字符數組中分割字符串
字符數組是char sentence []="abc_12.22.32.42";
我想從使用sscanf的句子讀ABC,12,22,32,42。
我試着用sscanf,但它給出不同的輸出。
我在這裏發佈了兩個代碼之一,它的工作正常。
如果我%s = %s
那麼它的閱讀作品abc = 12
。爲什麼我們必須在分配器之間留出空間。
任何方式來實現這一目標。
不工作代碼:
#include <stdio.h>
int main()
{
char sentence []="abc_12.22.32.42";
char str [20];
char str1 [20];
char str2 [20];
char str3 [20];
sscanf (sentence,"%s_%s.%s.%s.%s",str,str1,str2,str3);
printf ("%s --> %s --> %s --> %s --> %s\n",str,str1,str2,str3);
return 0;
}
輸出:
abc_12.22.32.42--> -- � -->�Tl�s --> (null)
預期輸出:
abc --> 12 --> 22 --> 32 --> 42
工作代碼:
/* sscanf example */
#include <stdio.h>
int main()
{
char sentence []="abc = 12";
char str [20];
char str1 [20];
char str2 [20];
char str3 [20];
if(sscanf(sentence,"%s = %s",str,str1) < 5) ;
printf ("%s--> %s\n",str,str1);
return 0;
}
輸出:
abc--> 12
[分割字符串在C分隔符]的可能重複(http://stackoverflow.com/questions/9210528/split-string-with-delimiters-in-c的最佳方式) – dirkgently