gpt4 book ai didi

c - 无法用另一个字符串替换字符串中的字符

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:48 30 4
gpt4 key购买 nike

这是一个问题,我们需要用另一个新字符串替换字符串中出现的所有字符。下面给出问题:

编写一个程序来替换给定字符的出现(比如 c)在主字符串(比如 PS)和另一个字符串(比如 s)中。

输入:第一行包含主字符串 (PS)下一行包含一个字符 (c)下一行包含一个字符串 (s)

输出:打印字符串 PS,每次出现的 c 都替换为 s。

注意:- PS 或 s 中没有空格。- PS 的最大长度为 100。- s 的最大长度为 10。

下面是我的代码:

#include<stdio.h>
int main()
{
char ps[100],*ptr,c,s[10];

printf("Enter any string:");
gets(ps);

printf("Enter the character you want to replace:");
scanf("%c",&c);

printf("Enter the new string:");
fflush(stdin);
scanf("%s",&s);

ptr=ps;

while(*ptr!='\0')
{
if(*ptr==c)
*ptr=s;
ptr++;
}

printf("Final string is:");
puts(ps);
return 0;
}

我无法用字符串替换字符。它只是给我一个垃圾输出来代替我想要替换的字符。

但是,当我将其声明为字符时,输出符合预期。它将字符替换为另一个字符。

你能帮我解决这个问题吗?

最佳答案

在 C 中,字符串是字符序列,由第一个地址表示。所以 *ptr = s 应该让你从编译器那里得到关于不匹配类型的警告。如果您想将一个字符串插入另一个字符串,您需要移动其他字符为其腾出空间。

但是您的问题描述似乎并不要求您创建一个新字符串,只需打印就好像您有。因此,您可以遍历原始字符串,对于每个字符,如果要替换,则打印替换字符串,否则打印原始字符。

关于c - 无法用另一个字符串替换字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46002942/

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