String 替换c字符串中的单词

String 替换c字符串中的单词,string,String,我这里的代码有点小问题。我只是做了一个小程序来测试,把它放到我的实际程序中。这个想法是用add变量中的字符串替换所有的“(star)here(star)”。然而,当我运行程序时,我的最终答案并不完全正确。以下是我的结果: 我有一个超级漂亮的明星 我有一个超级漂亮的明星,太棒了_我还有一个非常漂亮的女朋友 我有一个超级漂亮的明星,太棒了_我还有一个超级漂亮的女朋友 任何关于问题可能是什么的想法都将不胜感激 #include<iostream> #include<string>

我这里的代码有点小问题。我只是做了一个小程序来测试,把它放到我的实际程序中。这个想法是用add变量中的字符串替换所有的“(star)here(star)”。然而,当我运行程序时,我的最终答案并不完全正确。以下是我的结果: 我有一个超级漂亮的明星

我有一个超级漂亮的明星,太棒了_我还有一个非常漂亮的女朋友

我有一个超级漂亮的明星,太棒了_我还有一个超级漂亮的女朋友

任何关于问题可能是什么的想法都将不胜感激

#include<iostream>
#include<string>
#include<string.h>
using namespace std;

int main ( ) 
{
  char array[500] = "I_have_a_star_*here*._That_is_great!_I_also_have_a_girlfriend_*here*!",
  temp[500],
  add[500] = "which is super pretty";
  int i=0, j=0;

  while(array[i] != '\0')
  {
    if(array[i] != '*')
    {
      temp[j]=array[i];
      i++;
      j++;
    }
    else
    {
      strcat(temp,add);
      cout << temp << endl;
      i+=6;
      j+=strlen(add);
    }
  }

  cout << temp << endl;

  return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
char array[500]=“我有一个明星在这里*。\u那太棒了!\u我还有一个女朋友在这里*!”,
温度[500],
添加[500]=“哪个超级漂亮”;
int i=0,j=0;
while(数组[i]!='\0')
{
if(数组[i]!='*')
{
温度[j]=数组[i];
i++;
j++;
}
其他的
{
strcat(温度、添加);

cout问题在于,您正在将字符复制到
temp
数组中,而没有初始化它或终止它。因此,当您调用
strcat
或试图打印
temp
的内容时,最后额外的垃圾可能会把事情搞砸。粘贴
memset(temp,0,sizeof(temp));
while
循环之前或将声明更改为
temp[500]=“
。或者,您可以在调用
strcat
之前和循环之后添加
temp[j]='\0';

都德尝试一下

#include<iostream>
#include<string>
#include<string.h>
using namespace std;

int main ( ) 
{
  char array[500] = "I_have_a_star_*here*._That_is_great!_I_also_have_a_girlfriend_*here*!",
  temp[500],
  add[500] = "which is super pretty";
  int i=0, j=0;

while(array[i] != '\0')
{
  if(array[i] != '*')
  {
    temp[j]=array[i];
    i++;
    j++;
}
else
{
  strcat(temp,add);
  i+=6;
  j+=strlen(add);
 }
}

cout << temp << endl;

return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
char array[500]=“我有一个明星在这里*。\u那太棒了!\u我还有一个女朋友在这里*!”,
温度[500],
添加[500]=“哪个超级漂亮”;
int i=0,j=0;
while(数组[i]!='\0')
{
if(数组[i]!='*')
{
温度[j]=数组[i];
i++;
j++;
}
其他的
{
strcat(温度、添加);
i+=6;
j+=strlen(相加);
}
}
无法删除此行:-->“无法