は、だから私は、文字列を持っている「127.0.0.1:1024
」scanf()を使用して文字列 "127.0.0.1:1024"を "127.0.0.1"と "1024"に分割する方法はありますか?
私は1024
から127.0.0.1
を分割したいです。これは私が試したことです:
char server[2048], port[2048];
int scanErr = sscanf(argv[1], "%[^:]2047s:%2047s", server, port);
127.0.0.1
が正しく取得されますが、ポートはまだ空です。何が問題なの?あなたは%[]
後、余分な情報は必要ありません
[この 'scanf'(および家族)のリファレンス](http://en.cppreference.com/w/c/io/fscanf)。 '%['の書式が間違っています。 –
また、 'strtok'を検討してください – enhzflep
* sscanfの使い方... *そうではありません。 [重大なバグを導入することなく使用するには、 'scanf()'関数ファミリは非常に難しい](http://c-faq.com/stdio/scanfprobs.html)です。 –