C++ 字符串和指针
嘿,伙计们,我只是想知道,我如何输出从字符串中删除的字符数,比如说字符串“这是一个测试”用户询问要删除的字符,比如说“我”。然后它将只输出“删除字符串中的4个i字符”,然后打印新字符串,而不使用i或类似的内容。这是我现在的代码C++ 字符串和指针,c++,string,C++,String,嘿,伙计们,我只是想知道,我如何输出从字符串中删除的字符数,比如说字符串“这是一个测试”用户询问要删除的字符,比如说“我”。然后它将只输出“删除字符串中的4个i字符”,然后打印新字符串,而不使用i或类似的内容。这是我现在的代码 #include <iostream> #include <string> using namespace std; void removeChar(char * string, char letter); int main() {
#include <iostream>
#include <string>
using namespace std;
void removeChar(char * string, char letter);
int main() {
char myString[99];
char userInput;
cout << "Enter a string" << endl;
cin.getline(myString, 99);
cout << "Enter a character to remove" << endl;
cin >> userInput;
removeChar(myString, userInput);
printf("Your string is now: %s\n", myString);
return 0;
}
void removeChar(char * string, char letter)
{
for (unsigned int i = 0; i < strlen(string); i++)
if (string[i] == letter)
strcpy(string + i, string + i + 1);
}
#包括
#包括
使用名称空间std;
void removeChar(字符*字符串,字符字母);
int main(){
char myString[99];
字符用户输入;
请尝试下面的代码片段
int removeChar(char * string, char letter)
{
unsigned int i = 0, count = 0;
while(i < strlen(string) {
if (string[i] == letter) {
count++;
strcpy(string + i, string + i + 1);
} else
i++;
}
if(count > 0)
cout << "Removed " << letter << " " << count << " times " << endl;
else
cout << letter << " is not found in " << string << endl;
return count;
}
int removeChar(字符*字符串,字符字母)
{
无符号整数i=0,计数=0;
while(i0)
如果你是手工做的,你会怎么做?复制太多了,ese?“这是一个测试”有2个i,为什么会说它删除了4个i。保持一致!要“删除”由于数组的大小是固定的,因此无法使用字符数组中的字符。因此,请使用标准算法并更改removeChar
以返回count
。