Здесь у меня есть один символ, в котором есть некоторые разделители.Как я могу разделить строки из массива символов
массив символов является char sentence []="abc_12.22.32.42";
Я хочу читать азбуку, 12,22,32,42 из предложения, используя sscanf.
Я пробовал с sscanf, но с его заданным выходом.
Я разместил здесь два кода, один из которых работает нормально.
если я прочитал abc = 12
с %s = %s
, то его работы. Почему мы должны выделять пространство между сплиттером.
Любой способ достичь этой цели.
Не работает Код:
#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
возможный дубликат [Split строки с разделителями в C] (http://stackoverflow.com/questions/9210528/split-string-with-delimiters-in-c) – dirkgently