3章

66 阅读1分钟
#include <iostream>
#include <string>
using std::cin;
using std::string;
int main()
{
	string str;
	getline(cin, str);
	std::cout << str << std::endl; 

	cin >> str;
	std::cout << str << std::endl;

	return 0;

}

3.3

输入运算符:从第一个非空白字符读取到下一个非空白字符.

getline函数:读取直到遇见一个换行符.(将换行符也读取进来了)

3.4

#include <iostream>
#include <string>
using std::cin;
using std::string;
using std::cout;
using std::endl;
int main()
{
	string str1, str2;
	cin >> str1 >> str2;
	if (str1 == str2)
		cout << "=" << endl;
	else
	{
		cout << "!=" << endl;
		if (str1 > str2)
			cout << str1 << endl;
		else
			cout << str2 << endl;
	}

	if (str1.size() == str2.size())
		cout << "=" << endl;
	else
	{
		cout << "!=" << endl;
		if (str1.size() > str2.size())
			cout << str1 << endl;
		else
			cout << str2 << endl;
	}

}

3.5

#include <iostream>
#include <string>
using std::cin;
using std::string;
using std::cout;
using std::endl;
int main()
{
	string result, str;
	/*while (cin >> str)
		result += str;
	cout << result << endl;*/

	while (cin >> str)
		result = result + str + " ";
	cout << result << endl;



}

3.6

#include <iostream>
#include <string>
using std::cin;
using std::string;
using std::cout;
using std::endl;
int main()
{
	string str{ "hello"};
	for (auto& i : str)
	{
		i = 'X';

	}
	cout << str << endl;

	return 0;
}

3.7

原字符内容不会有任何变化

3.8

#include <iostream>
#include <string>
using std::cin;
using std::string;
using std::cout;
using std::endl;
int main()
{
	string str{ "hello"};
	auto i = str.size();
	i = 0;
	while (i != str.size())
	{
		str[i] = 'X';
		++i;
	}
	cout << str << endl;

	return 0;

}

#include <iostream>
#include <string>
using std::cin;
using std::string;
using std::cout;
using std::endl;
int main()
{
	string str{ "hello"};
	auto i = str.size();
	i = 0;
	for (; i != str.size(); i++)
	{
		str[i] = 'X';

	}
	cout << str << endl;

	return 0;

}

范围for简洁,不容易出错,逻辑上也容易理解

3.9

不合法,s是空字符,访问空字符的行为是未定义的

3.10

#include <iostream>
#include <string>
#include <cctype>
using std::cin;
using std::string;
using std::cout;
using std::endl;
int main()
{
	string str;
	cin >> str;
	for (auto i : str)
	{
		if (!ispunct(i))
			cout << i;
			
	}
	cout << endl;
}

3.11

合法 类型是const char&