1 条题解
-
0
/* 思路分析 思路一: 1. 将得到的数字用循环获取每一位,存入数组中直接输出 思路二: 1. 将数字用字符数组char【】接收 ,倒序输出 或者倒序后输出 思路三: 1.用字符串接收 倒序后输出 // 思路一: // 1. 将得到的数字用循环获取每一位,存入数组中 倒序输出 #include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> str; while(n != 0) { //直接从后面获取每一位 str.push_back(n % 10); n = (n - (n % 10)) / 10; } for ( int a : str ) { //跟字符串一样可以这样遍历输出 cout << a; //字符串本质上是一个字符数组,它也支持迭代器, } //因此可以用类似的方式遍历。 return 0; } //输出 直接输出即可 ,不用倒序 //for ( int temp = str.size()-1; temp >= 0 ; temp-- ) { //str.size() 获取动态数组大小 siziof()才是放在括号里面 //str.size()-1 数组大小搞对 // cout << str[temp]; //} //思路二: //1. 将数字用字符数组char【】接收 ,倒序输出 或者倒序后输出 #include <bits/stdc++.h> using namespace std; int main() { vector<char> str; char i; while((i = cin.get()) != EOF) { // 使用 cin.get() 逐字符读取 str.push_back(i); // 是i = cin.get() 不是cin.get(i) } //1.倒序输出 用revers()函数 注意不要最后的'\0' reverse(str.begin(), str.end()); // 使用 std::reverse 倒序 //输出 //注意:不包括字符串末尾的 '\0' size_t j; for ( j = 0; j < str.size(); j++ ) { cout << str[j]; } //2. 倒序后输出 int n = static_cast<int>(str.size()); //安全强制转换 reverse(str.begin(), str.end()); //倒序 for ( int i = 0; i < n; i++) { cout << str[i]; } return 0; } //hello" 包括5个字符和一个 '\0',总共需要6个字节的空间。然而, //数组 str 的大小只有5,这会导致 '\0' 被存储到数组之外,从而引发数组越界。 //char dest[6] = "world"; //strcpy(dest, "hello"); // 错误:目标数组空间不足 //在这个例子中,dest 的大小为6,只能存储5个字符加上一个 '\0'。 //但如果使用 strcpy 将 "hello" 拷贝到 dest,则会覆盖 dest 的内存,导致越界。 //思路三: //1.用字符串接收 倒序后输出 #include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; //sort(s.begin(), s.end()); //这个是升序排序 reverse(s.begin(), s.end()); for ( char c : s) { cout << c; } return 0; } */
- 1
信息
- ID
- 43
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 52
- 已通过
- 5
- 上传者