用c语言题目描述:输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop作为最后输入的字符串。
时间: 2023-06-10 07:07:42 浏览: 351
在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。(C语言)
以下是用 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 假设输入的字符串最长为 1000
int main() {
char str[MAX_LEN + 1]; // 用于存储输入的字符串,多留一个位置给 '\0'
int len, sum = 0, max_len = 0, index = 0;
char max_str[MAX_LEN + 1];
while (1) {
scanf("%s", str); // 读入字符串
// 如果读入的是 stop,则跳出循环
if (strcmp(str, "stop") == 0) {
break;
}
len = strlen(str); // 计算字符串长度
sum += len; // 累加长度
// 如果当前字符串长度超过了最长字符串长度,则更新最长字符串
if (len > max_len) {
max_len = len;
strcpy(max_str, str); // 将当前字符串复制到 max_str 中
index = sum - len; // 记录最长字符串在输入中的位置
}
}
printf("Sum of lengths = %d\n", sum);
printf("Longest string = %s\n", max_str);
printf("Position of longest string = %d\n", index);
return 0;
}
```
注意:以上代码假设输入的字符串中不包含空格或其他特殊字符,如果有需要特殊处理。另外,由于 C 语言中字符串以 '\0' 结尾,因此在定义字符串数组时需要多留一个位置给 '\0'。
阅读全文