c - 如何在指向字符串的指针上使用 toupper()?

标签 c pointers toupper

我尝试了以下方法:*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/

相关文章:

c - "scanf("%d",&a[i])"是什么意思?

c - 如何使用系统调用编译C文件

c++ - 是否可以重载可以从指针告诉固定数组的函数?

c - 在 C 中分割字符串并打印大写的第一个字符

c - 为什么当我尝试实现一个函数来反转数组时,我的输入数组和输出数组都损坏了?

c - 读取寄存器的宏函数

将指针作为参数传递给引用时的 C++ 指针转换

c++ - char指针的多维数组

将字符串转换为大写以与 C 中的用户输入进行比较

c - C 中的简单 toupper 编码