c语言,编写函数,要求去掉字符串的所有空格
时间: 2024-05-08 17:21:18 浏览: 119
可以使用指针来实现去掉字符串中所有空格的功能,代码如下:
```c
#include <stdio.h>
#include <string.h>
void removeSpaces(char *str)
{
char *p = str; // 定义指针p指向字符串的首地址
while (*str) // 当字符串未结束时
{
if (*str != ' ') // 如果当前字符不是空格,就把它复制到p所指向的位置
*p++ = *str;
str++; // 继续遍历字符串
}
*p = '\0'; // 在最后添加上字符串结束符
}
int main()
{
char str[100];
printf("请输入一个字符串:");
gets(str); // 读入字符串
removeSpaces(str); // 调用函数去掉字符串中的空格
printf("去掉空格后的字符串为:%s\n", str);
return 0;
}
```
在这个程序中,我们使用指针p来记录不含空格的字符串的下一个位置,然后遍历字符串,如果当前字符不是空格,就把它复制到p所指向的位置,然后p向后移动一位,继续遍历字符串。最后,在p所指向的位置添加上字符串结束符,表示新的字符串已经结束。
相关问题
C语言编写函数,去掉字符串末尾的空格。编写主函数,输入中间和末尾可能带一个或多个空格的字符串,显示该字符串,然后调用函数去掉末尾的字符串,再在主函数中显示去掉末尾空格的字符串。 输入:字符串,中间和末尾
可能带一个或多个空格
输出:去掉末尾空格的字符串
示例:
输入: "hello world "
输出: "hello world"
解释: 输入的字符串末尾有多个空格, 调用函数后去掉了末尾空格, 输出结果为"hello world"
函数如下:
```c
void removeSpaces(char *str) {
int len = strlen(str);
//从末尾开始遍历字符串
for(int i=len-1; i>=0; i--) {
//如果当前字符是空格, 则将其替换为'\0'
if(str[i] == ' ') {
str[i] = '\0';
}
//如果当前字符不是空格, 则退出循环
else {
break;
}
}
}
```
主函数如下:
```c
int main() {
char str[100];
printf("请输入字符串: ");
fgets(str, 100, stdin);
printf("原字符串为: %s\n", str);
removeSpaces(str);
printf("去掉末尾空格后的字符串为: %s\n", str);
return 0;
}
```
用c语言,编写函数,要求去掉字符串的所有空格
下面是一个用 C 语言编写的函数,可以去掉字符串中的所有空格:
```c
#include <stdio.h>
#include <string.h>
void remove_spaces(char *str) {
int i, j;
for (i = 0; str[i] != '\0'; i++) {
if (str[i] != ' ') {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
str[strcspn(str, "\n")] = '\0'; // remove the newline character
remove_spaces(str);
printf("String without spaces: %s\n", str);
return 0;
}
```
在上面的代码中,`remove_spaces` 函数接受一个指向字符串的指针,并在原始字符串上修改它,去掉所有的空格。在函数中,我们遍历字符串中的每个字符,如果当前字符不是空格,则将其复制到新字符串中。最后,我们在新字符串的末尾添加一个空字符,以指示字符串的结尾。
在 `main` 函数中,我们使用 `fgets` 函数从用户处获取一个字符串,并使用 `strcspn` 函数删除输入字符串中的换行符。然后,我们调用 `remove_spaces` 函数,并打印出没有空格的字符串。
阅读全文