上面的代码不知哪儿错了,请指出下。
还有就是运用指针时经常会出现suspicious pointer conversion 这又是怎么回事?
第1个回答 2013-12-04
指针比较麻烦,直接用数组简单。
赋值用strcpy()
#include<stdio.h>
int main(){
char a[10][10],c[10];
int i,j;
for (i=0;i<10;i++) scanf("%s",a[i]); // 输入10个字符串
for (i=0;i<9;i++)
for (j=i+1;j<10;j++){
if ( strcmp(a[i],a[j]) > 0){ strcpy(c,a[i]); strcpy(a[i],a[j]);strcpy(a[j],c);}; //排队,交换
}
for (i=0;i<10;i++) printf("%s\n",a[i]); //输出
return 0;
}追问
赋值用strcpy()
#include<stdio.h>
int main(){
char a[10][10],c[10];
int i,j;
for (i=0;i<10;i++) scanf("%s",a[i]); // 输入10个字符串
for (i=0;i<9;i++)
for (j=i+1;j<10;j++){
if ( strcmp(a[i],a[j]) > 0){ strcpy(c,a[i]); strcpy(a[i],a[j]);strcpy(a[j],c);}; //排队,交换
}
for (i=0;i<10;i++) printf("%s\n",a[i]); //输出
return 0;
}追问
我在练习指针的用法,麻烦你看看我的代码有什么问题
我在练习指针的用法,麻烦你看看我的代码有什么问题
追答10 个字符串,下标要到9,含9。
**t = a+i; 这种语句行不通。**t 也无存储单元。简单地 用 char t[10];
#include
main(){
char (*a)[10],c[10][10], t[10];
int i,j;
for (i=0;i0) {
strcpy(t,a+i);strcpy(a+i,a+j);strcpy(a+j,t);
}
for (i=0;i<10;i++) printf("%s\n",a+i);
return 0;
}