字符串未正确转换为小写

时间:2018-03-13 02:47:20

标签: c string

我想创建自己的函数,将字符串转换为小写,s,我希望能够将tolower的结果转换为char,但每当我对它进行类型转换时,它就会崩溃。我该如何解决这个问题?

我的功能如下:

StructA != StructB

1 个答案:

答案 0 :(得分:0)

您无法修改通过

定义的字符串
char *name = "BILLY";

而不是尝试

char name[] = "BILLY";

第一个是指向只读字符串文字的指针,第二个是定义包含字符串BILLY的字符数组。

并且不需要将name的地址传递给stringToLower(),它是一个指针,您可以修改它指向的内容(字符串字符)。

void stringToLower(char *str) {
    int i = 0;

    for (i = 0; str[i] != NULL; i++) {
        str[i] = (char)(tolower(str[i]));
        printf("%c", str[i]);
    }
    printf("\n");

    return;
}

int main() {
    char name[] = "BILLY";

    stringToLower(name);

    printf("%s", name);

    return 0;
}