//0
#include<iostream>
#include<string>
int main(int argc, char const *argv[])
{
std::cout << "Please enter your name:";
std::string name;
std::cin >> name;
std::cout << "Hello, " << name << "!" << std::endl;
return 0;
}
//0示例二
#include<iostream>
#include<string>
int main(int argc, char const *argv[])
{
std::cout << "Please enter your name:";
std::string name;
std::cin >> name;
const std::string greeting = " Hello," + name + " !";
const std::string space (greeting.size(),' ');
const std::string secend = "*" + space + "*";
const std::string first (secend.size(), '*');
std::cout << std::endl;
std::cout << first << std::endl;
std::cout << "*" << space << "*" << std::endl;
std::cout << "*" << greeting << "*" << std::endl;
std::cout << "*" << space << "*" << std::endl;
std::cout << first << std::endl;
return 0;
}
右上角的为正确结果(空格后以ctr+d作为EOF结束符),左上角是(空格+回车作为结束符),右下角为少了第一行的std::endl(空格后以ctr+d作为EOF结束符)
//1
有效
表达式的结果为:std::string类型的值.
只要操作数任意一个(但不能全是)都可以是字符串字面量( 对象字面量就是引号引起来的部分,必须是等号右边的部分)或者char类型的值
//2
无效
报错:
error: invalid operands to binary expression
原因:"Hello" 和",world"之间的加号无效,没有定义两个操作数都是字符串常量的的操作符运算函数。
//3
有效,两个字符串字面量都能输出。
原本字符串常量初始化后,是不能修改的,但是{}使得两个字符串常量处于不同的作用域中,互不影响。
#include<iostream>
#include<string>
int main(int argc, char const *argv[])
{
{
const std::string s = "a string";
std::cout << s << std::endl;
}
{
cosnt std::string s = "another string"
std::cout << s << std::endl;
}
return 0;
}
//4
一样的输出,
这里涉及到分号的作用,
作用:就是一个完整语句的结束标志,方便程序编译,不至于产生与设计初衷相违背的逻辑。
这里的改变并不影响语意的表达。
一下情况就会引起的语言的
eg,
do{
程序段S
}while(表达式P);
如果while后面的分号不要了的话,就会导致连同把后面的语句误认为是同一个语句。
1
while(a<50);
a++;
2
for(i=1;i<10;i++);
b++;
这两个段程序,在while和for后面加的分号,导致就算条件满足,也不会执行循环体,与当初编写的语意相差甚远。
#include<iostream>
#include<string>
int main(int argc, char const *argv[])
{
{
const std::string s = "a string";
std::cout << s << std::endl;
{
const std::string s = "another string";
std::cout << s << std::endl;};}
return 0;
}
//5
error: use of undeclared identifier 'x'
std::cout << x << std::endl;
一个作用域结束后,x作为局部变量,已经被系统回收了
#include<iostream>
#include<string>
int main(int argc, char const *argv[])
{
{
std::string s = "a string";
std::string x = s + ", really";
std::cout << s << std::endl;
std::cout << x << std::endl;
}
return 0;
}
6 运行结果