用c语言输入一个字符串(注意单词中间有空格) “A blind man who leans against a wall imagines that it's the boundary of the world.” 要求用字符指针完成下列操作: (1)求该英文句子的长度。(不包括’\0’) (2)求该英文句子有多少个单词。
时间: 2024-03-06 07:48:47 浏览: 144
好的,以下是实现这个功能的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.";
char *p = str; // 定义一个字符指针指向字符串的首地址
int len = 0; // 用于记录字符串的长度
int count = 0; // 用于记录单词的个数
// 求出字符串的长度
while (*p != '\0') {
len++;
p++;
}
// 求出单词的个数
p = strtok(str, " "); // 使用空格作为分隔符,将字符串分割成单词
while (p != NULL) {
count++;
p = strtok(NULL, " ");
}
// 输出字符串的长度和单词的个数
printf("该英文句子的长度为:%d\n", len);
printf("该英文句子有%d个单词。\n", count);
return 0;
}
```
运行程序后,即可得到该英文句子的长度和单词的个数。
相关问题
输入一个字符串(注意单词中间有空格) “A blind man who leans against a wall imagines that it''s the boundary of the world.” 要求用字符指针完成下列操作: 1.求该英文句子的长度。(不包括’\0’) 2.求该英文句子有多少个单词。 3.统计该英文句子中一共出现了多少次字母 ’a’,并输出每个字母 ’a’所处的位置。 将该英文句子倒着输出,即从后往前一个个字母输出来。用c语言完成
好的,下面是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。
阅读全文