将小写字母转化为大写字母,无法输出结果

#include
int main()
{
char str[] = "helloworld";
char* p = str;
while (*p != '\0')
{
*p -= 32;
}
puts(str);
return 0;
}

你-32的时候没有移动指针,那么-32的只有第一个字符,需要在while循环-32后移动指针p++,这样实战每个字符都-32

#include<stdio.h>
int main()
{
char str[] = "helloworld";
char* p = str;
while (*p != '\0')
{
*p -= 32;
p++;
}
puts(str);
return 0;
}

循环里,缺了一句:p++; ,供参考:

#include<stdio.h>
int main()
{
    char str[] = "helloworld";
    char* p = str;
    while (*p != '\0')
    {
        *p -= 32;
        p++;
    }
    puts(str);
    return 0;
}