|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kjj2931 于 2022-2-12 19:55 编辑
- void compare(char *c[],int n);
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- int q = 0;
- char *c[] = {"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};
- printf("这是按照要求排序后的字符串!\n\n");
- printf("%s\n\n",c[0]);//如果要输出一个字符串,使用%s,那么后面只能是地址c[0]
- printf("%c\n",*c[0]);//如果需要输出字符,那么需要加个星号,指向它输出!
- for(q = 0;q<5;q++)
- {
- compare(c+q,q);
- printf("%s",*(c+q));
- }
-
- }
- void compare(char *c[],int n)
- {
- int i = 0,j = 0;
- int max;
- int sum = 0;
- if(*c[n]>=65&&(*c[n]+1)>=97)
- {
- sum = strlen(c[n]);
- *c[n] = *c[n] + 32;
- for(i = 0;i<sum;i++)
- {
- if(*c[i]==' ')
- {
- continue;
- }
- for(j = 1;j<sum;j++)
- {
- if(*c[j] == ' ')
- {
- continue;
- }
- else if(*c[i]>*c[j])
- {
- max = *c[i];
- *c[i] = *c[j];
- *c[j] = max;
-
- }
- }
- }
- }
- else
- {
- sum = strlen(c[n]);
- for(i = 0;i<sum;i++)
- {
- for(j = 1;j<sum;j++)
- {
- if(*c[i]>*c[j])
- {
- max = *c[i];
- *c[i] = *c[j];
- *c[j] = max;
-
- }
- }
- }
- }
- }
复制代码
出错位置一直在第13行,一编译就显示[Warning] passing argument 1 of 'compare' from incompatible pointer type 还有expected 'char **' but argument is of type 'char *'
本帖最后由 jhq999 于 2022-2-12 20:04 编辑
字符串常量不允许修改
- void compare(char *c[],int n);
- #include <stdio.h>
- #include <string.h>
- int main()
- {
- int q = 0;
- char *c[] = {"Follow me","BASIC","Great Wall","FORTRAN","Computer design"};/////////////////////////这里面都是字符串常量
- printf("这是按照要求排序后的字符串!\n\n");
- printf("%s\n\n",c[0]);//如果要输出一个字符串,使用%s,那么后面只能是地址c[0]
- printf("%c\n",*c[0]);//如果需要输出字符,那么需要加个星号,指向它输出!
- for(q = 0;q<5;q++)
- {
- compare(c+q,q);
- printf("%s",*(c+q));
- }
-
- }
- void compare(char *c[],int n)
- {
- int i = 0,j = 0;
- int max;
- int sum = 0;
- if(*c[n]>=65&&(*c[n]+1)>=97)
- {
- sum = strlen(c[n]);
- *c[n] = *c[n] + 32;
- for(i = 0;i<sum;i++)
- {
- if(*c[i]==' ')
- {
- continue;
- }
- for(j = 1;j<sum;j++)
- {
- if(*c[j] == ' ')
- {
- continue;
- }
- else if(*c[i]>*c[j])
- {
- max = *c[i];
- *c[i] = *c[j];
- *c[j] = max;
-
- }
- }
- }
- }
- else
- {
- sum = strlen(c[n]);
- for(i = 0;i<sum;i++)
- {
- for(j = 1;j<sum;j++)
- {
- if(*c[i]>*c[j])
- {
- max = *c[i];
- *c[i] = *c[j];///////////////////字符串常量不可改变
- *c[j] = max;
-
- }
- }
- }
- }
- }
复制代码
|
|