输入一个字符串(注意单词中间有空格) “A blind man who leans against a wall imagines that it''s the boundary of the world.” 要求用字符指针完成下列操作: 1.求该英文句子的长度。(不包括’\0’) 2.求该英文句子有多少个单词。 3.统计该英文句子中一共出现了多少次字母 ’a’,并输出每个字母 ’a’所处的位置。 将该英文句子倒着输出,即从后往前一个个字母输出来。用c语言完成
时间: 2024-03-23 22:43:26 浏览: 68
输入一个字符串,统计出这个字符串的英文大写字母、小写字母、数字、空格以及其它字符的个数
5星 · 资源好评率100%
好的,下面是C语言指针实现的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "A blind man who leans against a wall imagines that it's the boundary of the world.";
int len = strlen(str);
int word_cnt = 0;
int a_cnt = 0;
// 求该英文句子的长度
printf("Length: %d\n", len);
// 求该英文句子有多少个单词
char *p = str;
while (*p != '\0') {
if (*p == ' ')
++word_cnt;
++p;
}
printf("Word count: %d\n", word_cnt + 1);
// 统计该英文句子中一共出现了多少次字母 'a',并输出每个字母 'a' 所处的位置
p = str;
printf("Positions of 'a': ");
for (int i = 0; i < len; ++i) {
if (*p == 'a') {
++a_cnt;
printf("%d ", i);
}
++p;
}
printf("\nCount of 'a': %d\n", a_cnt);
// 将该英文句子倒着输出
printf("Reversed string: ");
p = str + len - 1;
while (p >= str) {
printf("%c", *p);
--p;
}
return 0;
}
```
首先定义一个字符串`str`,并求出其长度。接着定义变量`word_cnt`和`a_cnt`,分别用于统计单词数和字母'a'的出现次数。
使用指针变量`p`遍历字符串,统计单词数。如果当前字符是空格,则表示当前单词结束,单词数加1。
使用指针变量`p`遍历字符串,统计字母'a'的出现次数,并输出每个字母'a'所处的位置。
使用指针变量`p`从后往前遍历字符串,输出每个字符即可。
注意,字符串中的空格也算一个字符,因此单词数应该加1。
阅读全文