C中* string的UpCase

时间:2019-01-03 21:47:12

标签: c function lowercase

我想知道为什么我不能在函数中将我的所有字母都转换成小写。 我尝试在“ if”之前打印字符串,并且它可以正常工作,所以我不明白为什么我不能这样做:

string[i] = string[i] - 'A' + 'a';

这是我的功能:

bool is_string_in_array(char * strings[], int n, char * string) {


for (int i=0;i<strlen(string);i++) {
        printf("%c\n",string[i]);
    if (string[i] >= 'A' && string[i] <= 'Z') {
        string[i] = string[i] - 'A' + 'a';

    }
}
for (int i = 0; i < n; i++) {
    if (strcmp(strings[i], string) == 0){
        return true;
    }
}
return false;

}

而且我不能使用tolower()函数... 我打电话给:

char *test ={"DOG"};
is_string_in_array(banned_words,n,test);

谢谢您的时间

1 个答案:

答案 0 :(得分:1)

#include <stdio.h>
#include <stdlib.h>
void low_case_string(char * string);
int main()
{
    char str[]="TESTING";
    low_case_string(str);
    return 0;
}
void low_case_string(char * string)
{

    for (int i=0; i<strlen(string); i++)
    {
        if (string[i] >= 'A' && string[i] <= 'Z')
        {
            string[i] = string[i] - 'A' + 'a';

        }
    printf("%c\n",string[i]);
    }
}

它确实以您编写代码的方式工作,但是您在未进行任何更改之前就打印了结果。我不确定这是否是您要的