ここに、いくつかのスプリッターがある文字配列が 1 つあります。
文字配列はchar sentence []="abc_12.22.32.42";
sscanfを使って文章からabc,12,22,32,42を読みたい。
sscanf で試しましたが、出力が異なります。
私はここに2つのコードを投稿しました.1つは正常に動作しています。
私が読んだら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