2015-12-02 2 views
2

Попытка узнать C и поэтому я хочу изменить каждое слово в строке. «Hello World» to «olleH dlroW» Это то, что у меня есть до сих пор.C Обратные слова в строке

int main() 
{ 
    char str[100]; 
    int i; 
    printf("Enter string:"); 
    fgets(str,sizeof(str),stdin); 

    for (i = 0; i <= strlen(str); i++) 
    { 
     if (str[i] == ' ') 
     { 
      // Here the space and how should I switch words now? 
     } 
    } 

    return 0; 
} 

Должен ли я сделать что-то вроде этого:

TEMP = ул [I]; j = str [i-1];

а затем переключить места? str [i] = j; и j = temp; Я застрял здесь!

+0

Возможный дубликат [Проблемы с записью программы для обратного слова в строке в C] (http://stackoverflow.com/questions/29243374/having-trouble-writing- program-to-reverse-words-in-string-in-c) – owacoder

ответ

4

Я не отдам ответ, потому что это похоже на проблемы в выполнении домашних заданий и отличная возможность узнать, но вот подсказка:

Подумайте о том, как можно программно ссылаться на «противоположном» каждом буквы в слове. Так str [0] и str [strlen (str)] и т. Д. Это должно помочь вам, но не стесняйтесь исследовать дополнительные вопросы.

0

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

private void Button1_Click(object sender, EventArgs e) 
{ 
    const string targetWords = "Hello World"; 
    int count = targetWords.Length; 
    string result = null; 
    string chr = null; 

    while (!(count == 0)) { 
     chr = targetWords.Substring((count - 1), 1); 
     result += chr; 
     count -= 1; 
    } 
    Debug.WriteLine(result); 

} 
+0

Это в 'C-языке'? – Michi

Смежные вопросы