无法将缓冲区[200]转换为str []

ede*_*k k -3 c++

我必须从控制台读取一些文本,然后在该字符串中搜索"简单"文本.我有:

char Buffer[200];
cin >> Buffer; //read text form keybord

char str[] = Buffer;
char * pch;
pch = strstr (str,"simple");
strncpy (pch,"sample",6);
puts (str);
Run Code Online (Sandbox Code Playgroud)

如何转换Buffer[200]str[]使程序正常工作.

Jer*_*fin 5

如果你坚持使用C风格的字符串,你可能想要这样的东西:

char Buffer[200];
cin >> Buffer; //read text form keybord

char *pos = strstr(buffer, "simple");
if (pos) {
    buffer[1] = 'a';
    puts(buffer);
}
Run Code Online (Sandbox Code Playgroud)

如果你想编写实际的C++,你可能会做更多的事情:

std::string buffer;

std::getline(std::cin, buffer);

int pos;

if ((pos=buffer.find("simple")) !=std::string::npos)
    buffer[pos+1] = 'a';

std::cout << buffer;
Run Code Online (Sandbox Code Playgroud)