在这里,我有一个字符数组,其中有一些拆分器。
字符数组是char sentence []="abc_12.22.32.42";
我想使用 sscanf 从句子中读取 abc,12,22,32,42。
我尝试使用 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