求助啊
为什么编译下面程序段的时候会出现奇怪的结果呢?在最后输出的时候,会有奇怪的字符。
#include <iostream>
#include <string> // string.h 则是 C 语言提供的标准库。
#include <cstring> // cstring 是 string.h 头文件的 C++ 版本的标准库。
using namespace std;
int main()
{
string in_str;// 用于读入字符串的string 对象
const size_t str_size = 10;
char result_str[str_size+1];
// 读入字符串
cout << "Enter a string(<=" << str_size << " characters):" << endl;
cin >> in_str;
// 计算需复制的字符的数目
const char *str = in_str.c_str();
cout << str << endl;
size_t len = strlen(str);
cout << len << endl;
if (len > str_size) {
len = str_size;
cout << "String is longer than " << str_size
<< " characters and is stored only "
<< str_size << " characters!" << endl;}
// 复制len 个字符至字符数组result_str
strncpy(result_str, in_str.c_str(), len);
// 在末尾加上一个空字符(null 字符)
result_str[len+1] = '\0';
cout << "result_str = " << result_str << endl;
getchar();
getchar();
return 0;
}