首页  >  文章  >  后端开发  >  如何从 C 字符串中删除特定字符?

如何从 C 字符串中删除特定字符?

Patricia Arquette
Patricia Arquette原创
2024-11-11 05:50:02436浏览

How to Remove Specific Characters from Strings in C  ?

从 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 &amp;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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn