对于输入字符串:
使用cin
cin适用于输入不包含空格的字符串。
#include <iostream>
using namespace std;
int main() {
char str[1001]; // 字符数组大小为1001,留一个位置给'\0'
cin >> str;
cout << "You entered: " << str << endl;
return 0;
}
cin从输入流中读取字符,直到遇到空格、制表符、换行符或文件结束符为止。
遇到这些分隔符时,cin会停止读取,并将已读取的字符存储在目标变量中。
空格、制表符和换行符本身不会存储在目标变量中。
使用getline
getline可以读取包含空格的整行字符串。
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str); // 从标准输入读取一行
return 0;
}
使用字符数组和cin.get
这种方法也适用于包含空格的字符串。
#include <iostream>
using namespace std;
int main() {
char str[1001]; // 字符数组大小为1001,留一个位置给'\0'
cin.get(str, 1001); // 读取最多1000个字符
cout << "You entered: " << str << endl;
return 0;
}
使用cin.read(处理二进制输入)
如果需要处理可能包含换行符或其他特殊字符的二进制数据,可以使用cin.read。
#include <iostream>
using namespace std;
int main() {
char str[1001]; // 字符数组大小为1001,留一个位置给'\0'
cin.read(str, 1000); // 读取最多1000个字符
str[cin.gcount()] = '\0'; // 手动添加字符串结束符
cout << "You entered: " << str << endl;
return 0;
}
最优子结构
关于问题的解决想法:
这里是数字,我查到有把字符串划分为字典序字符串的题,但不是数字形式,而是字母形式。
substr函数
定义
substr()是C++语言函数,主要功能是复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字符串的长度,则子字符串将延续到源字符串的结尾。
语法
substr(size_type _Off = 0,size_type _Count = npos)-->第一个参数:offset 第二个参数:所取字符串长度。
一种构造string的方法
形式 : s.substr(pos, len)
返回值: string,包含s中从pos开始的len个字符的拷贝(pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s)
异常 :若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾
例子:
erase函数
string& erase ( size_t pos = 0, size_t n = npos );
erase(pos,n); 删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符
动态规划
总是列出状态转移方程,进行动态规划求解。
标签:旅行,oj,毕业,pos,cin,str,字符串,1001,string From: https://www.cnblogs.com/yplanet/p/18286766