|
5鱼币
目的:将五个字符串由大到小排序
- #include<stdio.h>
- #include<string.h>
- void fsort(char cname[][6], int n)
- {
- int j, k;
- char *t=&cname[0];
- for (k = 1;k < n;k++) {
- for(j=0;j<n-k;j++){
- if(cname[j]>cname[j+1]){
- t = cname[j];
- cname[j] = cname[j + 1];//编译器提示这里只能修改左值(一脸懵逼)
- cname[j + 1] = t;
- }
- }
- }
-
- }
- void main()
- {
- int i;
- char cname[5][6] = { "wang","li","zhang","jin","xian" };
- fsort(cname, 5);
- for (i = 0;i < 5;i++) {
- printf("%s\n", cname[i]);
- }
- }
复制代码
各位大佬帮帮忙啊,看看什么问题啊
本帖最后由 sunrise085 于 2020-5-14 15:33 编辑
字符串操作就要用字符串函数,你已经导入 string.h 文件了,为什么不用相关库函数?
你所说的那一行的错误是因为字符串不能这样赋值,因为你没有重载'='运算符用于字符串赋值
- #include<stdio.h>
- #include<string.h>
- void fsort(char cname[][6], int n)
- {
- int j, k;
- char t[6];
- for (k = 1;k < n;k++) {
- for(j=0;j<n-k;j++){
- if(strcmp(cname[j] , cname[j+1])>0){ //字符串大小比较
- strcpy(t , cname[j]); //字符串拷贝赋值
- strcpy(cname[j] , cname[j + 1]);
- strcpy(cname[j + 1] , t);
- }
- }
- }
- }
- void main()
- {
- int i;
- char cname[5][6] = { "wang","li","zhang","jin","xian" };
- fsort(cname, 5);
- for (i = 0;i < 5;i++) {
- printf("%s\n", cname[i]);
- }
- }
复制代码
|
最佳答案
查看完整内容
字符串操作就要用字符串函数,你已经导入 string.h 文件了,为什么不用相关库函数?
你所说的那一行的错误是因为字符串不能这样赋值,因为你没有重载'='运算符用于字符串赋值
|