【发布时间】:2016-03-25 00:29:08
【问题描述】:
所以基本上,现在,这个函数只能接受 9 个单词,每个单词 10 个字符。我怎样才能使它可以占用arbitrary 数量的words 和characters 并按字母顺序对它们进行相应的排序?
int sortText(){
char name[10][9], tname[10][9], temp[10];
int i, j, n;
printf("Enter the amount of words you want to sort (max 9):");
scanf("%d", &n);
printf("Enter %d words: ",n);
for (i = 0; i < n; i++)
{
scanf("%s", name[i]);
strcpy(tname[i], name[i]);
}
for (i = 0; i < n - 1 ; i++){
for (j = i + 1; j < n; j++){
if (strcmp(name[i], name[j]) > 0){
strcpy(temp, name[i]);
strcpy(name[i], name[j]);
strcpy(name[j], temp);
}
}
}
printf("\n------------------------------------------\n");
printf("%-3s %4s %11s\n", "Input","|", "Output");
printf("------------------------------------------\n");
for (i = 0; i < n; i++)
{
printf("%s\t\t%s\n", tname[i], name[i]);
}
printf("------------------------------------------\n");
}
【问题讨论】:
-
不,它可以包含 10 个单词,每个单词 8 个字符(加上字符串终止符)。
-
您需要将字符串作为字符指针存储在动态分配的数组中。然后您可以对数组中的
char *项进行排序。这样,字符串和数组可以是任意长度。 -
感谢您的反馈,您建议我如何完成此操作?我之前只用静态值而不是任意长度对 C 进行编程。
标签: c string bubble-sort