编写C语言代码,实现:输入一个字符串s(长度不大于100),由若干个由a~z,A~Z,0~9组成的字符串组成,单词之间由空格分开,输出此字符串中长度最长的包含字母a的单词,若存在多个则按输入顺序输出,若不存在任何包含字母a的单词,则输出“Error”
时间: 2024-04-30 12:22:33 浏览: 158
在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
```c
#include <stdio.h>
#include <string.h>
int main() {
char s[101];
scanf("%[^\n]", s); // 读入一行字符串,包括空格
int max_len = -1; // 最长单词的长度
char max_word[101]; // 最长单词
int has_a = 0; // 是否有包含字母a的单词
char *word = strtok(s, " "); // 利用空格分割出第一个单词
while (word != NULL) { // 如果还有单词
int len = strlen(word); // 单词长度
if (len > max_len && strchr(word, 'a') != NULL) { // 如果单词长度更长且包含字母a
max_len = len;
strcpy(max_word, word);
has_a = 1;
}
word = strtok(NULL, " "); // 分割出下一个单词
}
if (has_a) { // 存在包含字母a的单词
printf("%s\n", max_word);
} else { // 不存在包含字母a的单词
printf("Error\n");
}
return 0;
}
```
阅读全文