Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 字符串和指针_C++_String - Fatal编程技术网

C++ 字符串和指针

C++ 字符串和指针,c++,string,C++,String,嘿,伙计们,我只是想知道,我如何输出从字符串中删除的字符数,比如说字符串“这是一个测试”用户询问要删除的字符,比如说“我”。然后它将只输出“删除字符串中的4个i字符”,然后打印新字符串,而不使用i或类似的内容。这是我现在的代码 #include <iostream> #include <string> using namespace std; void removeChar(char * string, char letter); int main() {

嘿,伙计们,我只是想知道,我如何输出从字符串中删除的字符数,比如说字符串“这是一个测试”用户询问要删除的字符,比如说“我”。然后它将只输出“删除字符串中的4个i字符”,然后打印新字符串,而不使用i或类似的内容。这是我现在的代码

#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