从 C 语言的字符串中删除特定字符
许多应用程序需要操作用户输入,从字符串中删除不需要的字符是一项常见任务。本文讨论如何在 C 中有效地完成此任务。
问题陈述:
考虑用户输入电话号码的场景:
cout << "Enter phone number: "; string phone; cin >> phone;
原始输入可能包含其他字符,例如括号和破折号:“(555) 555-5555”。目标是删除这些字符以获得干净的数字字符串。
解决方案:
C 标准库提供了一种方便的方法来实现此目的。 std::remove 算法迭代字符串并删除指定字符的实例。但是,它不会直接修改原始字符串。
string str("(555) 555-5555"); char charsToRemove[] = "()-"; // Characters to be removed for (unsigned int i = 0; i < strlen(charsToRemove); ++i) { str.erase(std::remove(str.begin(), str.end(), charsToRemove[i]), str.end()); } // Output: 555 5555555 cout << str << endl;
基于函数的方法:
为了方便使用,您可以定义一个函数,该函数采用将字符串和字符数组作为输入并执行字符删除:
void removeCharsFromString(string &str, char* charsToRemove) { for (unsigned int i = 0; i < strlen(charsToRemove); ++i) { str.erase(std::remove(str.begin(), str.end(), charsToRemove[i]), str.end()); } }
然后可以使用所需的字符串调用此函数以删除特定字符。例如:
string phone = "(555) 555-5555"; removeCharsFromString(phone, "()-" );
以上是如何从 C 字符串中删除特定字符?的详细内容。更多信息请关注PHP中文网其他相关文章!