c - 如何在不传递 char ** 作为参数的情况下修改字符串值?

标签 c string

某些 C 函数可以修改字符串值,而无需我传递它的地址。 例如:

char * s = "foo\0";
tobaa(s); /* Now foo is modified to something like "baa" */
printf("%s", s); /* baa */

我该怎么做?

最佳答案

简单:

void tobaa(char *s)
{
    strcpy(s, "baa");
}

此外,额外的 \0 字符是不必要的,它是自动添加的。 此外,确保将可变缓冲区传递给 tobaa 或调用 UB。

关于c - 如何在不传递 char ** 作为参数的情况下修改字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9956502/

相关文章:

c - 如何绕过 "foreground lock timeout"激活我的窗口?

c - 在C中访问另一个结构中的结构指针

c - 用于单步编译和运行单个 C 文件的脚本/命令?

c - 提取特定范围的位并在 C 中找到它们之间的零数

c - 如何增加数组的限制?

java - 获取特定字符串 JAVA 的二进制大小

javascript - 如何测试一个字符串是否是另一个字符串的最后一个 “part”?

string - R - 仅绘制文本

linux - 如何扫描字符串的内容以查看它是否包含大写字符或小写字符

string - MongoDB:使用数学运算符搜索文本字段