gpt4 book ai didi

将字符串中的一个字符更改为字符串

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:29 25 4
gpt4 key购买 nike

我正在尝试用 C 语言编写代码,该代码将接受一个字符串,检查每个字符的特定字符(将其称为 'x'),如果该字符是 'x ',将其更改为多个字符(如 "yz")。这是我的尝试,假设缓冲区和替换是定义的字符数组(即 char buffer[400] = jbxyfgextd...; char replace[250];)

  int j = 0;
for (j = 0; j < 110; j++) {
if (buffer[j]=='x') {
int len = strlen(replace);
replace[len] = 'y';
replace[len+1] = 'z';
}
else {
replace[j]=buffer[j];
}
}

当我运行它时,我得到一些 yz,但它们不是背靠背的。是否有任何程序/功能可以轻松做到这一点?

最佳答案

因为 buffer[]replace[] 数组中的索引不同。分别使用两个索引。

在您的代码表达式中:replace[j] = buffer[j]; 是错误的。您可以像这样更正它:

 else {
int len = strlen(replace);
replace[len]=buffer[j];
}

但要使用 strlen(),数组 replace[] 应该以 nul \0 终止。 (将替换声明为 char replace[250] = {0})

编辑:

要编写更好的代码,请按照我上面的建议使用两个分隔索引——代码将变得高效和简化。

int bi = 0;  // buffer index 
int ri = 0; // replace index
for (bi = 0; bi < 110; bi++) {
if (buffer[bi] == 'x') {
replace[ri++] = 'y';
replace[ri] = 'z';
}
else {
replace[ri] = buffer[bi];
}
replace[++ri] = '\0'; // terminated with nul to make it string
}

关于将字符串中的一个字符更改为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18627768/

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