c - 如何使用指针替换字符串中的字符? (在 C 代码中)

标签 c pointers reference

如何使用指针替换字符串中的字符? (在 C 代码中)

这是我的代码:

#include <stdio.h>
#include <string.h>

unsigned char code[] = "Hello world!\n";
main()
{

        printf("String Length:  %d\n", strlen(code));
        printf("Original String: %s\n", code);

        char &code[7] = "W";    
        char &code[8] = "a";
        char &code[9] = "l";
        char &code[10] = "e";
        char &code[11] = "s";

        printf("New String: %s\n", code);

}

最佳答案

您可以指定一个从零开始的数组索引:

   code[6] = 'W';    
   code[7] = 'a';
   code[8] = 'l';
   code[9] = 'e';
   code[10] = 's';

字 rune 字用单引号而不是双引号指定。

数组变量是第一个元素地址的同义词。如果您特别想使用指针语法,可以将 code[i] 替换为 *(code + i)。例如:

   *(code + 6) = 'W';    
   *(code + 7) = 'a';
   *(code + 8) = 'l';
   *(code + 9) = 'e';
   *(code + 10) = 's';

关于c - 如何使用指针替换字符串中的字符? (在 C 代码中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32229494/

相关文章:

c++ - 为什么这个指针包含存储在堆上的地址?

c - 声明指向 C 字符串数组的指针时应该使用多少个星号?

nhibernate - 如何破解NHibernate中的 "circular reference"

c++ - 区分两个值相等、名称不同的枚举值

c++ - 具有引用类成员的赋值运算符

c - 将 "Unknown Command"传递给 execv() 时出现 "uname"错误

c - 根据输入制作矩形

c++ - 删除指针数组中的元素(调整大小)

c - c代码错误

c - 在调用父方法时使用 void * 作为方法中的 this 指针与 my_class * 和强制转换相比有哪些利弊?