vector<vector<vector<int>>> n(21,vector<vector<int>>(21,vector<int>(21,-1)));
记忆化递归
字符串的输入方式
c++输入:
string str;
geline(cin, str);
c输入:
char str [20];
cin.getline(str, 20)
在**C++**中,常见的字符串输入方法有:
-
使用
cin >> str
这种方式会读取输入中的单词(遇到空白字符停止),适合读取单个单词。例如:std::string str; std::cin >> str;
-
使用
std::getline(cin, str)
这种方式会读取整行,包括空格,直到遇到换行符。例如:std::string str; std::getline(std::cin, str);
-
使用
cin.getline(char_array, size)
如果你使用的是字符数组(C 风格字符串),可以调用cin.getline
来读取一行输入。例如:char str[100]; std::cin.getline(str, 100);
此外,还可以使用 cin.get()
来逐个字符读取,但通常前面几种方法已能满足大部分需求。
在C语言中,常用的字符串输入方法有:
-
使用
scanf("%s", str)
这种方式会读取输入中的单词(以空白字符为分隔符),例如:char str[100]; scanf("%s", str);
注意:这种方法不检查缓冲区溢出,也无法读取包含空格的字符串。
-
使用
fgets(str, size, stdin)
这种方式更安全,可以读取包含空格的整行输入,并且指定最大读取长度。例如:char str[100]; fgets(str, 100, stdin);
要注意的是,
fgets
会将换行符也读入,如果不需要可以在读取后处理去除。 -
(不推荐)使用
gets(str)
这种方法会读取整行输入,但由于无法防止缓冲区溢出,从C11标准开始已经被废弃,不建议使用。
这些方法各有适用场景,在实际编程中应根据需要选择合适的方法,同时注意缓冲区大小和输入安全问题。