c - C 中的字符串操作?

标签 c sorting

好的,我正在尝试在 C 中询问和排序名称。我完成了代码并且编译没有错误,但我遇到了问题。当我输入大写和小写的混合字符时,我首先对大写进行排序,而不是按顺序排序。我应该如何处理我的代码?请任何人帮助我。

代码:

#include <stdio.h>
#include <string.h>

int main()
{
    char name[30][25],temp[25];
    int i,j,n;
    printf("Enter how many students : ");
    scanf("%d",&n);
    for(i=0;i<n;i++);
    {
        printf("Enter the name of the student : ");
        scanf("%s",name[i]);
    }
    for(i=0;i<n;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("The sorted names are : \n");
    for(i=0;i<n;i++)
    {
        printf("%s\n",name[i]);
    }
    getch();
    return(0);
}

最佳答案

冒泡排序的循环是错误的 - 更改:

for(i=0;i<n;i++)
{
    for(j=i+j;j<n;j++)
    {

到:

for(i=0;i<n-1;i++)
{
    for(j=i+1;j<n;j++)
    {

或者只使用 qsort来自标准 C 库,而不是试图重新发明轮子。

关于c - C 中的字符串操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25834597/

相关文章:

计算均值中位数模式c编程数组

c - 如何格式化在 C 中指定一个 const char *?

objective-c - 为什么在两个整数相除时只将分子转换为 float 以获得 float 商?

c - Linux/bash 中程序返回值的有效范围是多少?

c++ - 在 C++ 中对字符 vector 进行排序并将大写和小写字母视为相等的最佳方法?

c++ - 在 C 或 C++ 中返回结构是否安全?

c++ - 如何在C++中按特定列的值对2D字符串数组进行排序?

javascript - 在 Array A 之后对 Array B 排序,这样引用和相等的 Primitives 保持准确的位置

algorithm - Kotlin 默认使用什么样的排序?

javascript - 修复 Angular 排序