gpt4 book ai didi

c - 如何将 char* 字符串类型中的 "\n"从 ""更改为 0x104567910?

转载 作者:行者123 更新时间:2023-11-30 19:55:46 25 4
gpt4 key购买 nike

char* changeEntertoSpace(char* s) {
char* begin;
begin = s;

while (*begin != NULL) {
if (*begin=="\n") {
//*begin = " ";
strcpy(begin," ");
}
begin++;
}
s = begin;
return s;
}

这是我的代码,我尝试将文本字符串 s 中的 更改为 。但这不起作用。

你能帮我理解我的错误是什么吗?

最佳答案

为了替换字符串中的单个字符,strcpy() 是错误的选择,因为它始终会在以下位置附加字符串终止符 ('\0')复制字符串的末尾。

这可能就是替换后的'\n' 似乎消失了的原因。

您只需替换单个字符:

char * changeEnterToSpace(char* s) {
char * begin;
begin = s;

while (*begin != '\0')
{
if (*begin=='\n')
{
*begin = ' '; // Substituting the single character
}
begin++;
}
// s = begin;
return s;
}

您在尝试 strcpy() 之前评论的作业几乎是正确的。您使用双引号来括起空格,但在 C 中,单个字符用单引号括起来:char c = 'a'

请注意,为了找到要替换的字符,可以使用标准 strchr() 函数 ( man page )。

注意:我还注释了 s = begin; 赋值,这将使您的函数返回空字符串。相反,您可能希望在换行符替换后返回原始字符串。

关于c - 如何将 char* 字符串类型中的 "\n"从 ""更改为 0x104567910?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58853015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com