2017-05-15 8 views
-1

私はちょっと疑問に思っています。文字列から削除された文字数を出力するにはどうすればよいですか? 。それから、単に「文字列に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); 

} 
+3

スニペット? – NathanOliver

+0

_少しコピーしていますか?_ – Quirk

+4

"これはテストです"は2つあります、なぜそれが4つ削除されたと言いますか?一貫してください! – user2296177

答えて

1

以下をお試しくださいあなたが手でそれをやっていた場合、あなたがそれを行うだろうか

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; 
} 
+0

そして、 'removeChar'を' count'を返すように変更します。 –