gpt4 book ai didi

c - 定位和替换一个子串(C语言)

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

<分区>

我编写了以下代码,目的是在字符串上使用指针算法来查找和替换目标子字符串。显然,它并不优雅,但不幸的是它也是不正确的——它向字符串中添加了无关的字符。

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

int main() {
char string[] = "The quick brown fox jumped over the lazy dog.";
char target[] = "brown"
char replacement[] = "ochre";
char segment[80+1];
char pre_segment[80+1];
char post_segment[80+1];
int S = strlen(string), T = strlen(target);
for (int i = 0; i < S; i++) {
strncpy(segment, string + i, T);
if (strcmp(segment, target) == 0) {
>>> strncpy(pre_segment, string, i); <<<
strncpy(post_segment, string + i + T,
S - (i + T));
strcat(pre_segment, replacement);
strcat(pre_segment, post_segment);
printf("%s\n", pre_segment);
}
}
return 0;
}

在标记为 >>>this<<< 的行之后,在替换与 pre_segment 连接之前,已将无关字符添加到替换之前。

有人可以给我关于如何调试的建议吗? (也欢迎提出更好的解决方案的建议,但请尽量明确。另外,我不应该为此使用动态内存分配。)

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