如何修改C++代码:将字符串按空格分隔换位改为指定字符分隔换位
按指定分隔符分割字符串并交换两部分输出的C++代码修改
原代码实现了按空格分割输入字符串为两部分并交换位置输出的功能(例如输入I am输出am, I),现需修改为支持按指定字符(如!)完成相同操作(例如输入I!am输出am,I)。
原代码
int main() { string getEmail; string email, firstName, lastName; string dot = "."; cout << "What is your email?" << endl; getline(cin, email); firstName = ""; lastName = ""; string::size_type i; for (i = 0; !isspace(email.at(i)); i++) firstName = firstName + email.at(i); for (i = i + 1; i < email.length(); i++) lastName = lastName + email[i]; cout << lastName << ", " << firstName << endl; return 0; }
修改后的代码
#include <iostream> #include <string> using namespace std; int main() { string inputStr; string part1, part2; char delimiter = '!'; // 可修改此处指定任意分隔符 cout << "请输入带指定分隔符的字符串:" << endl; getline(cin, inputStr); part1 = ""; part2 = ""; string::size_type i; // 截取分隔符前的第一部分 for (i = 0; i < inputStr.length() && inputStr.at(i) != delimiter; i++) { part1 += inputStr.at(i); } // 跳过分隔符,截取剩余的第二部分 if (i < inputStr.length()) { for (i = i + 1; i < inputStr.length(); i++) { part2 += inputStr[i]; } } cout << part2 << ", " << part1 << endl; return 0; }
关键修改点
- 变量命名优化:将原代码中与邮箱相关的变量(如
email、firstName)改为更通用的名称(inputStr、part1、part2),逻辑更清晰 - 新增分隔符变量:添加
char delimiter = '!',后续更换分隔符只需修改此变量值,无需改动核心逻辑 - 替换分隔判断逻辑:把原代码中判断空格的
!isspace(...)替换为判断是否等于指定分隔符inputStr.at(i) != delimiter,同时增加i < inputStr.length()避免越界 - 增加边界处理:添加
if (i < inputStr.length())判断,处理输入中没有分隔符的情况(此时第二部分为空,输出, 输入内容) - 更新提示文本:修改控制台提示语句,匹配新功能的使用场景
内容的提问来源于stack exchange,提问作者confusedPro
相关产品推荐
相关产品推荐

