黑马程序员技术交流社区
标题:
关于输入6个字符串字进行排序并输出的问题
[打印本页]
作者:
baye1992
时间:
2016-3-11 15:18
标题:
关于输入6个字符串字进行排序并输出的问题
本帖最后由 baye1992 于 2016-3-11 15:51 编辑
</blockquote></div><div class="blockcode"><blockquote>#include <stdio.h>
#include <string.h>
#define LEN 3
int main(int argc, const char * argv[]) {
//设置个字符串数组指针
char *str[LEN];
//循环录入字符串
for (int i = 0; i<LEN; i++) {
printf("请输入第%d个字符串:\n",i+1);
gets(&str[i]);
}
//循环比较
for (int i = 0; i<LEN; i++) {
for (int j = 0; j<LEN-i-1; j++) {
if (strcmp(&str[j], &str[j+1])>0) {
char *p = str[j];
str[j] = str[j+1];
str[j+1] = p;
}
}
}
//打印字符串
for (int i = 0; i<LEN; i++) {
puts(&str[i]);
}
printf("\n");
return 0;
}
复制代码
求完善~~
因为gets()会有警告,但是把gets()换成fgets()打印结果又是一堆乱码,该怎么弄啊~~?
作者:
baye1992
时间:
2016-3-11 15:20
本帖最后由 baye1992 于 2016-3-11 15:52 编辑
#include <stdio.h>
#include <string.h>
#define LEN 3
int main(int argc, const char * argv[]) {
//设置个字符串数组指针
char *str[LEN];
//循环录入字符串
for (int i = 0; i<LEN; i++) {
printf("请输入第%d个字符串:\n",i+1);
gets(&str
);
}
//循环比较
for (int i = 0; i<LEN; i++) {
for (int j = 0; j<LEN-i-1; j++) {
if (strcmp(&str[j], &str[j+1])>0) {
char *p = str[j];
str[j] = str[j+1];
str[j+1] = p;
}
}
}
//打印字符串
for (int i = 0; i<LEN; i++) {
puts(&str
);
}
printf("\n");
return 0;
}
作者:
baye1992
时间:
2016-3-11 15:22
怎么我自己看代码只显示了3行~~?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2