2011-11-22 28 views
2

我需要將字符串中的元音更改爲$ C。我知道我需要使用for循環,並且我非常確定我在正確的軌道上,但是我無法使其工作。如何將字符串中的元音改爲符號?

這裏是我的代碼:

#include <stdio.h> 
#include <string.h> 

int main(void) 
{ 
    char input[50]; 
    char i; 
    int j = 0; 

    printf("Please enter a sentence: "); 
    fgets(input, 50 , stdin); 

    for (j = 0; input[i] != '\0'; j++)  
     if (input[i]=='a'||input[i]=='e'||input[i]=='i'||input[i]=='o'||input[i]=='u') 
     { 
      input[i]= '$'; 
      printf("Your new sentence is: %s", input); 
     } 

    return 0; 
} 

我知道我的錯誤是不是一個大的,但我就是不能看到它。這是作業,所以我不想要一個解決方案,只是一些建議,以便我可以從中學習。

編輯:
感謝您的傢伙,我擺脫了「J」的,現在可但是當我運行它的輸出每次改變元音新線的計劃。我如何編碼它,以便它只輸出最後一行,即所有元音都改變了?

+1

測試爲「AEIOU」是不是找元音的準確的方法。例如在「健身房」一詞中有一個元音,但它沒有任何字母「aeiou」... –

+0

我認爲他真的需要元音字符,而不是元音字符。 –

回答

6

你做隨着指數的一個小錯誤:你寫的每input[i];它應該時間

int main(void) 
{ 
    char input[50]; 
    int i; 

    printf("Please enter a sentence: "); 
    fgets(input, 50 , stdin); 

    for (i = 0; input[i] != '\0'; i++) 
    { 
     if (input[i]=='a'||input[i]=='e'||input[i]=='i'||input[i]=='o'||input[i]=='u') 
     { 
      input[i]= '$'; 
     } 
    } 
    printf("Your new sentence is: %s", input); 
    return 0; 
} 
+0

我知道這是小事!感謝那。如果您不介意,請參閱我的問題的編輯....謝謝! – adohertyd

+0

@adohertyd - 在我的回答中查看我在打印位置所做的更改。 – MByD

+0

@Downvoter - 謹慎解釋? – MByD

0

for (j = 0; input[i] != '\0'; j++) 
    ^     ^

應該

for (i = 0; input[i] != '\0'; i++) 

其實,你可以省略j be input[j]

0

這是我的問題,j。你已經使用過我,但從來沒有增加它。

0

將您的輸入基地索引在for-loop的變量上。更換你的for循環是這樣的:

for (j = 0; input[j] != '\0'; j++) 
{ 
     if (input[j]=='a'||input[j]=='e'||input[j]=='i'||input[j]=='o'||input[j]=='u') 

     { 
      input[j]= '$'; 
      //printf("Your new sentence is: %s", input); //move this outside the loop 
     } 
} 

所以整個代碼將是這樣的:

#include <stdio.h> 
#include <string.h> 

int main(void) { 
    char input[50]; 
    char i; 
    int j = 0; 
    printf("Please enter a sentence: "); 
    fgets(input, 50 , stdin); 
      printf ("\ninput: %s", input); 

    for (j = 0; input[j] != '\0'; j++)  
    {  

     if (input[j]=='a'||input[j]=='e'||input[j]=='i'||input[j]=='o'||input[j]=='u') 
     { 
      input[j]= '$'; 

     }  
    } 
    printf("Your new sentence is: %s", input); 
    return 0; } 
0
String input = "My name is jitender rana"; // here give your input 

    System.Text.StringBuilder sb = new System.Text.StringBuilder(); // taken to concatenate the string 
    for(Int32 i = 0; i<input.Length; i++) 
    { 
     if ((input[i].ToString().ToLower() == "a") || (input[i].ToString().ToLower() == "e") || (input[i].ToString().ToLower() == "i") || (input[i].ToString().ToLower() == "o") || (input[i].ToString().ToLower() == "u")) 
     { 
      // output += input.Replace(input[i].ToString(), "_"); 
      sb.AppendLine(input[i].ToString().Replace(input[i].ToString(), "_")); 
     } 
     else 
     { 
      sb.AppendLine(input[i].ToString()); 
     } 
    } 
    Response.Write(sb.ToString()); 
相關問題