每行末尾总有一个多余的空格怎么解决C语言
时间: 2024-02-21 15:01:58 浏览: 46
在C语言中,你可以使用以下两种方法解决行末多余空格的问题:
1.使用fgets()函数替代scanf()函数读取字符串:
scanf()函数在读取字符串时,会将行末的空格作为字符串的一部分读入,导致行末多余空格的问题。而fgets()函数可以读取一整行字符串,将行末的换行符也一并读取,并且不会将行末多余的空格读入字符串中。示例代码如下:
```
char str[100];
fgets(str, 100, stdin); //stdin表示从标准输入读取
```
2.使用while循环遍历字符串并去除行末空格:
如果你已经使用了scanf()函数读取字符串,你可以使用以下代码去除行末的空格:
```
char str[100];
scanf("%s", str);
int len = strlen(str);
while (len > 0 && str[len-1] == ' ') {
str[len-1] = '\0';
len--;
}
```
这段代码首先计算字符串长度len,然后从字符串末尾开始遍历,如果遇到空格则将其替换为字符串结束符'\0',直到遇到第一个非空格字符为止。这样,行末的空格就被去除了。