2013-09-17 1 views
1

этот код должен преобразовывать верхний регистр в нижний регистр и наоборот .. проблема в том, что он возвращает как верхний и нижний. Например, когда я ввожу слово «тунец», он возвращает «TUNAtuna» .. помогите пожалуйстав верхнем регистре до нижнего регистра и наоборот

string rev_letter(string s) 
{ 
    string word = s; 
    string final_word=""; 
    char c; 
    for(int i = 0 ; i<=(word.length()-1);i++) 
    { 
    c=word.at(i); 
    if(isupper(c)) 
    { 
     putchar(tolower(c)); 
     final_word+=c; 
    } 
    else 
    { 
     putchar(toupper(c)); 
     final_word+=c; 
    } 

    } 
    return final_word; 
} 
+1

Пожалуйста, укажите язык ... – opalenzuela

ответ

1

При использовании putchar, вы печатаете характер, как вы ожидаете (на экран), но вы не поставить символ в final_word. В final_word вы фактически ставите начальное слово.

Попробуйте это:

string rev_letter(string s) 
{ 
    string word = s; 
    string final_word=""; 
    char c; 
    for(int i = 0 ; i<(word.length());i++) 
    { 
     c=word.at(i); 
     if(isupper(c)) 
     { 
      final_word+=tolower(c); 
     } 
     else 
     { 
      final_word+=toupper(c); 
     } 
    } 

    return final_word; 
} 
+0

теперь я получил его спасибо за вашу помощь :) – alabasi

+0

@ user2786906 Вы должны «принять» ответ, если вы считаете, что это отвечает на ваш вопрос , Таким образом, люди узнают, что они решены. –