需要一种使输入字符串以空格开头的解决方案吗?
我知道一种在输入中包含空格的方法
scanf("%[^\n]s", s);
但是它仅适用于单词之间的间隔。 我需要一个以空格开头的字符串的解决方案。 而且我还需要变量中的起始空格
答案 0 :(得分:3)
要获得用户输入的行,请使用fgets()
。
#define S_MAX_LENGTH
char s[S_MAX_LENGTH + 2];
if (fgets(s, sizeof s, stdin)) {
s[strcspn(s, "\n")] = '\0'; // Should code want to lop off a potential trailing \n
....
请勿使用scanf("%[^\n]s", s);
或gets(s);
。它们遭受缓冲区溢出和其他问题的困扰。