我尝试了以下方法:*string = toupper(*string);
这仅使指针指向的字符串指针的第一个字符变为大写。我希望 *pointer 指向的所有字符指针均为大写。无论如何我可以做到这一点吗?
最佳答案
您可以按照如下所示执行此操作
char s[] = "hello world";
for ( char *p = s; *p; ++p ) *p = toupper( ( unsigned char )*p );
请注意,您不得更改字符串文字。字符串文字是不可变的。例如,如果您在上面的代码中编写
char *s = "hello world";
而不是
char s[] = "hello world";
那么程序行为将是未定义的。
关于c - 如何在指向字符串的指针上使用 toupper()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35004253/