在c中对一串大写和低位字母进行排序(通过交换)

时间:2018-02-07 16:14:33

标签: c string

例如:AAbbCC应为AACCbb

一切都在页面上运行,但由于某种原因,当函数交换值时,str的值会发生变化(在运行结束时,程序会打印AAC的值)

这是我的代码:

    void capital_to_Low(char *str)
{

    int i = 0, j = (strlen(str)) -1;

    while (i < j)
    {
        if (str[i] >= 'a' && str[i] <= 'z')
        {
            swap(&str[i], &str[j--]);
        }
        else i++;

    }
    puts(str);
}

void swap(int *a, int *b)
{
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}

1 个答案:

答案 0 :(得分:2)

将void swap(int * a,int * b)更改为void swap(char * a,char * b),因为您指的是字符的地址而不是整数