在以下代码中,scanf()
将在遇到任何空格时拆分字符串:
char str[] = "Hello I'm Tom";
char token1[256];
char token2[256];
char token3[256];
sscanf(str, "%s%s%s", token1, token2, token3);
我是否只能在遇到换行符(\n
)时拆分字符串?
答案 0 :(得分:3)
您可以使用istringstream::getline
#include <iostream>
#include <sstream>
using namespace std;
int main()
{
std::istringstream input("Hello I'm Tom\nHello I'm Jim\nHello I'm Tim");
char token1[256];
char token2[256];
char token3[256];
input.getline(token1, 256);
input.getline(token2, 256);
input.getline(token3, 256);
cout << token1 << endl;
cout << token2 << endl;
cout << token3 << endl;
return 0;
}
答案 1 :(得分:1)
您可以使用scanf()
,如下所示:
scanf("%99[^\n]",comment);
但请尝试使用fgets。
fgets(comment, sizeof comment, stdin);
或使用gets()
或getline()
函数从stdin
读取字符串。