输入一个单词,然后需要用相同数量的符号创建一个新单词,并且新单词必须仅用“ _”填充。
int main()
{
char word[30];
cout << "Enter word: ";
gets_s(word);
cout << word;
int k = strlen(word);
cout << "Amount of letters in word: "<< k << endl;
char *temp = new char[k];
for (int i = 0; i < k; i++)
{
temp[i] = '_';
}
cout << temp << endl;
}
Run Code Online (Sandbox Code Playgroud)
tad*_*man 12
对于确实令人讨厌的C字符串,通常在C ++中可以避免使用,因此必须 NUL终止字符缓冲区:
char *temp = new char[k + 1];
for (int i = 0; i < k; i++)
{
temp[i] = '_';
}
temp[k] = 0; // Terminated
Run Code Online (Sandbox Code Playgroud)
否则,您将继续读入随机内存并看到各种垃圾。
使用以下方法会容易得多std::string:
std::string temp;
for (int i = 0; i < k; ++i) {
temp += '_';
}
Run Code Online (Sandbox Code Playgroud)
您不必记住因为std::string不需要NUL终止,标准库在内部使用了另一种方法,并且会自动为您处理。
但是,等等,还有更多!
如果您现在就采取行动并使用,std::string您将可以使用以下出色的工具:
std::string temp(k, '_');
Run Code Online (Sandbox Code Playgroud)
更轻松!