#include <stdio.h> #include <string.h> int main() { char str[5][20],temp[5][20];

2024-10-28 10:27:27
推荐回答(1个)
回答(1):

你声明了 char temp[5][20]; 可以存放 5 个字符串,每个长度小于20。
语句中 第一个下标 只能用 0到4,共 5 个:
temp[0],temp[1],temp[2],temp[3],temp[4].
所以你写 temp[5] 则下标超界出错

作为临时变量,其实声明 char temp[20]; 也就够了, 语句中用:
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
做交换 便可。