编写一个功能为删除字符串中的空格的函数c语言
时间: 2023-12-11 18:04:54 浏览: 110
以下是一个简单的C语言函数,可以删除给定字符串中的所有空格:
```c
void remove_spaces(char *str) {
int i = 0, j = 0;
while (str[i]) {
if (str[i] != ' ') {
str[j++] = str[i];
}
i++;
}
str[j] = '\0';
}
```
在这个函数中,我们使用两个指针 `i` 和 `j` 来遍历字符串。当我们遇到一个非空格字符时,我们将其复制到新的字符串中,并将指针 `j` 向前移动一位。最后,我们将新字符串的结尾标记为 `'\0'`,以确保它是一个有效的C字符串。
相关问题
用C语言编写一个将一个字符串由字符串中的若干空格分割为若干字符串的函数
```
#include <stdio.h>
void split_string(char *str) {
int i = 0;
while (*str) {
if (*str == ' ') {
printf("\n"); // 换行
}
else {
printf("%c", *str); // 打印字符
}
str++; // 指针后移
}
}
int main() {
char str[] = "hello world";
split_string(str);
return 0;
}
```
该函数将输入的字符串按空格分割成若干个字符串,并打印输出。在主函数中,调用该函数并传入需要分割的字符串作为参数。具体的实现是遍历字符串中的每个字符,如果遇到空格,则换行打印;否则,打印字符。
用C语言编写程序:自定义一个函数,函数的输入为一个字符串,函数的功能为统计字符串中空格符、#、!三种字符的个数,并在函数中输出三个字符的个数,函数无返回值。
下面是用 C 语言编写的程序,实现了统计字符串中空格符、#、!三种字符的个数的功能:
```c
#include <stdio.h>
void countChars(char str[]) {
int spaces = 0, hashes = 0, exclaims = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ') {
spaces++;
} else if (str[i] == '#') {
hashes++;
} else if (str[i] == '!') {
exclaims++;
}
}
printf("Number of spaces: %d\n", spaces);
printf("Number of hashes: %d\n", hashes);
printf("Number of exclamation marks: %d\n", exclaims);
}
int main() {
char str[] = "Hello #world! This is a test.";
countChars(str);
return 0;
}
```
这个程序定义了一个 `countChars` 函数,它的输入参数是一个字符串。在函数中,我们定义了三个变量来分别统计空格符、# 和!的个数。然后我们使用一个循环来遍历字符串,对于每个字符,根据它是空格符、# 还是!,我们增加相应的计数器的值。最后,我们使用 `printf` 函数来输出每个字符的个数。
在 `main` 函数中,我们定义了一个字符串 `str`,并将其作为输入参数传递给 `countChars` 函数。运行程序后,输出结果如下:
```
Number of spaces: 5
Number of hashes: 1
Number of exclamation marks: 1
```
可以看到,程序正确地统计了字符串中空格符、# 和!的个数。
阅读全文