解题思路:
注意事项:
参考代码:
#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分
2 人评分
C语言程序设计教程(第三版)课后习题6.3 (C++代码)浏览:1067 |
1113题解浏览:823 |
C二级辅导-阶乘数列 (C语言代码)浏览:583 |
Tom数 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:812 |
神奇的fans (C语言代码)浏览:1124 |
C语言训练-排序问题<1> (C语言代码)浏览:369 |
多组数据新方法浏览:368 |
平方数问题,oj一直是wrong answer浏览:755 |
防御导弹 (C语言代码)浏览:2288 |