题目要求输入一个字符串。要求使用指针的方式遍历该字符串,并统计字符串中空格的个数。
时间: 2024-03-17 11:41:04 浏览: 90
好的,您可以参考以下代码实现:
```c
#include <stdio.h>
int count_spaces(char *str) {
int count = 0;
while (*str != '\0') { // 遍历字符串直到结尾
if (*str == ' ') { // 如果当前字符是空格,计数器加一
count++;
}
str++; // 移动指针到下一个字符
}
return count;
}
int main() {
char str[100];
printf("请输入一个字符串:");
gets(str); // 输入字符串
int spaces = count_spaces(str); // 统计空格个数
printf("该字符串中共有 %d 个空格\n", spaces);
return 0;
}
```
在上面的代码中,`count_spaces` 函数使用指针 `str` 遍历字符串,如果当前字符是空格则计数器加一,并将指针移动到下一个字符。最后返回计数器的值。在 `main` 函数中,首先输入字符串,然后调用 `count_spaces` 函数统计空格个数并输出。
相关问题
输入一个字符串。要求使用指针的方法遍历该字符串,并统计字符串中空格的个数。
可以使用指针的方法遍历字符串并统计空格的个数,具体代码如下:
```c
#include <stdio.h>
int main()
{
char str[100];
int i, count = 0;
char *ptr;
printf("请输入一个字符串:");
gets(str);
ptr = str; // 将指针指向字符串首地址
while (*ptr != '\0') // 判断指针是否指向字符串的结束符
{
if (*ptr == ' ') // 如果指向的字符是空格
{
count++; // 空格计数器加1
}
ptr++; // 指针后移一位
}
printf("该字符串中共有 %d 个空格。\n", count);
return 0;
}
```
需要注意的是,输入字符串时应该使用 `gets()` 函数,而不是 `scanf()` 函数。因为 `gets()` 函数可以读取包括空格在内的整行字符,而 `scanf()` 函数在遇到空格时会自动停止读取。同时,由于指针的自增操作需要在循环体内进行,因此在循环条件中使用指针时应该判断指针是否指向字符串的结束符 `\0`。
c语言使用指针遍历字符串,求字符串的个数
可以使用指针来遍历字符串,并计算字符串的个数。以下是实现代码:
```
#include <stdio.h>
int main() {
char str[] = "hello world!"; // 定义一个字符串
char *p = str; // 定义一个指向字符串的指针
int count = 0; // 统计字符串的个数
while (*p != '\0') { // 遍历字符串,直到遇到结束符 '\0'
if (*p != ' ') { // 遇到非空格字符,将计数器加 1
count++;
while (*p != ' ' && *p != '\0') { // 跳过当前单词的所有字符
p++;
}
} else { // 遇到空格字符,指针向后移动一位
p++;
}
}
printf("字符串中有 %d 个单词\n", count);
return 0;
}
```
在这个实现中,我们首先定义了一个字符串 `str`,然后定义了一个指向字符串的指针 `p`,并将其初始化为指向字符串的首地址。接着,我们使用 `while` 循环遍历字符串,直到遇到字符串的结束符 '\0' 为止。在遍历过程中,我们使用一个计数器 `count` 统计字符串中单词的个数,如果遇到了非空格字符,就将计数器加 1,并跳过当前单词的所有字符;否则,就将指针向后移动一位。最后,输出计数器的值,即为字符串中单词的个数。
阅读全文