为了更好地理解,我们始终建议您学习下面列出的C语言编程基础主题
在这个 C 语言程序中,我们需要将名称输入到数组中,并按字母顺序对这些名称进行排序。为了实现这一点,我们使用了两个函数,'strcmp' 和 'strcpy',这样我们可以非常快速地完成它。Strcmp 称为字符串比较函数,用于比较两个字符串。如果 string1 大于 string2,'strcmp()' 返回小于零的值。否则,strcmp 返回大于零的值。
此 C 语言程序中使用 Strcmpi() 函数是为了忽略字母的大小写。Strcpy() 被称为字符串复制函数,顾名思义,它将一个字符串复制到另一个变量中。在这里,我们将名称存储到一个数组中。在开始 for 循环之前,我们将名称复制到一个临时变量中。在 for 循环内部,我们将每个词与下一个名称进行比较,然后使用 strcpy 交换词来排序。要使用 strcmp、strcpy 函数,我们必须包含头文件 'string.h'。
在这个 C 语言程序中,我们必须按字母顺序对名称进行排序。我们必须接受用户输入的数字,以了解用户想要排序的项数。用户想要排序的项或名称的数量存储在变量 n 中。然后将接收用户输入的单词并将其存储在两个数组中。
一个是名为 tname 的临时数组。现在,数组 'name[][]' 和 'tname[][]' 都包含名称。使用一个 for 循环,我们必须将数组 'name[][]' 中的名称与同一数组中的下一个名称进行比较。为了比较名称,我们使用了 C 语言中的 'strcmp()' 函数。
如果第一个名称大于第二个名称,我们将第一个名称与第二个名称交换,并继续 for 循环。第一次迭代后,我们将在 'name[][]' 数组的第一个位置获得排序后的名称,for 循环将继续,直到它检查所有名称。现在 'name[][]' 数组包含排序后的名称,而 'tname[][]' 包含输入的名称。然后我们将正确显示输入的名称和排序后的名称。
步骤 1: 包含头文件以在 C 语言程序中使用内置函数。
步骤 2: 包含头文件 'string.h' 以进行字符串操作,例如 strcmp、strcpy。
步骤 3: 初始化两个字符数组,名为 'Tname'、'name',以及一个字符串 temp。
步骤 4: 初始化整数变量 N 以接受用户想要排序的名称数量。
步骤 5: 接受用户想要排序的名称数量到 N 中。
步骤 6: 从用户那里接受名称到数组 'name[][]' 中,然后使用 'strcpy()' 函数将名称复制到 'Tname[][]' 中。
步骤 7: 重复步骤 6,直到我们接受了用户输入的所有名称。
步骤 8: 使用 For 循环,将数组 'name[][]' 中的每个名称与同一数组中的下一个单词进行比较。我们使用 'strcmp()' 函数来比较这些词。
步骤 9: 如果 'strcmp()' 函数的返回值大于零,我们将交换名称。
步骤 10: 然后,重复步骤 8,直到我们比较了所有名称。
步骤 11: 将输入名称显示为 'Tname[][]' 数组中的元素。
步骤 12: 将排序后的名称显示为 'name[][]' 数组中的元素。
#include <stdio.h>
#include <string.h>
void main()
{
char name[10][8], Tname[10][8], temp[8];
int i, j, N;
printf("Enter the value of N\n");
scanf("%d", & N);
printf("Enter %d names\n", N); /* gets the names into a array and copy it into temporary array*/
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) /* compare and interchange each name to get sorted in the alphabetic order */ {
strcpy(temp, name[i]);
strcpy(name[i], name[j]);
strcpy(name[j], temp);
}
}
}
printf("\n----------------------------------------\n"); /* prints the names in the alphabetic order */
printf("Input Names\tSorted names\n");
printf("------------------------------------------\n");
for (i = 0; i < N; i++) {
printf("%s\t\t%s\n", Tname[i], name[i]);
}
printf("------------------------------------------\n");
} /* End of main() */
Enter the value of N 3 Enter 3 names Monica Lakshmi Aron ---------------------------------------- Input Names Sorted names ---------------------------------------- Monica Aron Lakshmi Lakshmi Aron Monica