如何在c中添加char数组?

jul*_*dik 0 c arrays toupper

这里有什么问题吗?

我想检查char数组中的char是否较低,因此如果是,则应将其更改为大写。

#include <stdio.h>

int main(int argc, char *argv[]) {
    char arr[100];
    scanf("%s",&arr);
    for(int i=0;i<sizeof(arr);i++){
        if(int islower(arr[i])){
            arr[i] = toupper(arr[i]);
        }
    }
    printf("%s",arr);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

abe*_*nky 5

要正确测量字符串的长度,请使用strlen,而不是sizeof

for(int i=0;i<strlen(arr);i++){ // Don't use sizeof on this line
Run Code Online (Sandbox Code Playgroud)

这是一个更简单的版本:

#include <stdio.h>
#include <ctype.h>

int main(int argc, char *argv[]) {
    char arr[100];
    scanf("%s", arr);

    for(int i=0;i<strlen(arr);i++){
        arr[i] = toupper(arr[i]);
    }

    printf("%s",arr);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

甚至:

#include <stdio.h>
#include <ctype.h>

int main(void) {
    char arr[100];
    scanf("%s", arr);

    for(char* c=arr; *c=toupper(*c); ++c) ;

    printf("%s",arr);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)