解题思路:
注意事项:
参考代码:
#include <stdio.h>
#include <string.h>
int main() {
char str[5000], str1[105][55];
gets(str);
str[strlen(str)] = '\0';
int i = 0, start = 0, end, j, k = 0;
while (1) {
while (str[i] == ' ') {
i++; // 跳过连续的空格
}
if (str[i] == '\0') {
break; // 已经到达字符串末尾
}
start = i; // 记录单词的起始位置
while (str[i] != ' ' && str[i] != '\0') {
i++; // 找到单词的末尾位置
}
end = i - 1; // 记录单词的末尾位置
for (j = start; j <= end; j++) {
str1[k][j - start] = str[j]; // 将单词复制到二维数组中
}
str1[k][j - start] = '\0'; // 添加字符串结束符
k++; // 单词计数器加一
}
for (i = 0; i < k - 1; i++) {
for (j = 0; j < k - i - 1; j++) {
if (strcmp(str1[j], str1[j + 1]) > 0) {
char temp[55];
strcpy(temp, str1[j]);
strcpy(str1[j], str1[j + 1]);
strcpy(str1[j + 1], temp);
}
}
}
printf("%s\n", str1[0]); // 输出第一个单词
// 输出按字典序排序的单词,重复的单词只输出一次
for (i = 1; i < k; i++) {
if (strcmp(str1[i], str1[i - 1]) != 0) {
printf("%s\n", str1[i]);
}
}
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:674 |
简单的a+b (C语言代码)浏览:726 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:506 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:556 |
简单的a+b (C语言代码)浏览:531 |
陈教主的三角形 (C语言代码)浏览:1143 |
图形输出 (C语言代码)浏览:945 |
printf基础练习 (C语言代码)浏览:1805 |
1227题解浏览:532 |
蛇行矩阵 (C语言代码)浏览:679 |