编写C的一个函数代码实现去掉字符串中空格的功能,用指针的方法
时间: 2024-02-25 08:56:46 浏览: 20
以下是一个使用指针的方法实现去掉字符串中空格的函数代码:
```c
void removeSpaces(char* str) {
char* p1 = str; // 定义指向字符串开始的指针
char* p2 = str; // 定义指向字符串开始的指针
// 移动 p2 指针,将非空格字符移到 p1 指针位置,并向后移动
while (*p2) {
if (*p2 != ' ') {
*p1 = *p2;
p1++;
}
p2++;
}
*p1 = '\0'; // 在结束处添加字符串结束符
}
```
在这个函数中,我们定义了两个指针p1和p2,它们都指向字符串的开始位置。然后我们从p2开始遍历整个字符串,如果p2指向的字符不是空格,我们就将它复制到p1所指向的位置,并将p1向后移动一个位置。最后,在字符串的末尾添加字符串结束符'\0',以确保字符串的正确性。
使用这个函数,可以很方便地去掉字符串中的空格。例如:
```c
char str[] = "This is a string with spaces.";
removeSpaces(str);
printf("%s", str); // 输出 "Thisisastringwithspaces."
```
相关问题
用指针的方法编写函数实现,计算一个字符在一个字符串中出现的次数
下面是用指针的方法编写函数实现,计算一个字符在一个字符串中出现的次数的代码:
```
#include <stdio.h>
int count_char(char *str, char c) {
int count = 0;
while (*str != '\0') {
if (*str == c) {
count++;
}
str++;
}
return count;
}
int main() {
char str[100], c;
printf("Enter a string: ");
scanf("%s", str);
printf("Enter a character: ");
scanf(" %c", &c);
int count = count_char(str, c);
printf("The character '%c' appears %d times in the string '%s'\n", c, count, str);
return 0;
}
```
这个函数接收两个参数:一个字符串的指针和要查找的字符。在函数内,我们用一个计数器来记录字符出现的次数。然后我们使用一个 while 循环来遍历整个字符串,如果当前字符与要查找的字符相等,就将计数器加一。最后返回计数器的值。
在主函数中,我们首先输入一个字符串和要查找的字符,然后调用 count_char 函数计算字符出现的次数,并输出结果。
注意,在输入字符时,我们使用了一个空格来忽略之前的缓存区中的回车符。
用c语言:用指针的方法编写函数实现,计算一个字符在一个字符串中出现的次数
以下是用指针的方法编写函数实现,计算一个字符在一个字符串中出现的次数的C语言代码:
```c
#include <stdio.h>
int count_char(char *str, char ch) {
int count = 0;
while (*str != '\0') {
if (*str == ch) {
count++;
}
str++;
}
return count;
}
int main() {
char str[100];
char ch;
printf("Enter a string: ");
gets(str);
printf("Enter a character to count: ");
scanf("%c", &ch);
int count = count_char(str, ch);
printf("'%c' appears %d times in '%s'\n", ch, count, str);
return 0;
}
```
首先定义了一个`count_char`函数,它接受一个字符串指针`str`和一个字符`ch`作为参数。然后,使用一个`while`循环遍历字符串中的每个字符,如果当前字符等于`ch`,则将计数器`count`增加1。最后,返回计数器的值。
在`main`函数中,首先使用`gets`函数获取用户输入的字符串,并使用`scanf`函数获取用户输入的字符。然后,调用`count_char`函数计算字符出现的次数,并打印结果。
注意,这种实现方式假设输入的字符串中不含有空格等分隔符,否则只会计算到第一个分隔符为止。