2013-10-16 297 views
0

我需要製作一個程序,我可以在其中插入一行文字,程序將使所有文字像第一個一樣(大寫小寫)。大寫字母和小寫字母

例子:
插入線 - 利羣大廳fameee類

和程序的輸出應該是: - 利羣大廳FamEee類

如何檢查完整的單詞,並走出去,什麼符號是 - 上限還是下限?然後用相同的方案製作所有的單詞。

+0

哦,孩子........ –

+3

這不是「爲我做作業」網站。請向我們展示您的努力以及您卡住的位置,並且我們非常樂意幫助 –

+0

Yenots1,我相信英語不是您的第一語言,但您可以再試一次這種措辭嗎?另外,這個問題並不是現實話題,因爲你沒有說出你所嘗試過的東西,只是一個需要解決的問題。 – Gray

回答

3

[評論] 創建一個布爾數組並捕獲第一個單詞的每個字符的大小寫信息。使用相同的布爾數組,格式化剩餘的單詞。這是我現在可以幫助你的一切。您可以嘗試編寫程序並返回論壇,以便獲得更多回復。因爲我沒有權限發表評論時加入我的評論在回答部分

[答案] 在這裏你去...

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

int main() { 

    char inputStr[] = "AbbA hall fameee class"; 
    char bool_arr[50]; 
    char *ptr; 
    int len = 0; 
    int loopcnt = 0; 
    int i = 0; 

    printf("Input Str: %s\n", inputStr);  

    ptr = strtok(inputStr, " "); 
    len = strlen(ptr); 

    for(i = 0; i < len; i++) { 
     if(toupper(ptr[i]) != ptr[i]) { 
      bool_arr[i] = 0; //Lower case 
     } 
     else { 
      bool_arr[i] = 1; //Upper case 
     } 
    } 

    while(ptr != NULL) { 
     if(strlen(ptr) < len) { 
      loopcnt = strlen(ptr); 
     } 
     else { 
      loopcnt = len; 
     } 

     for(i = 0; i < loopcnt; i++) { 
      if(bool_arr[i] == 0 && 
       (tolower(ptr[i]) != ptr[i])) { 
       ptr[i] = tolower(ptr[i]); 
      } 

      if(bool_arr[i] == 1 && 
       (toupper(ptr[i]) != ptr[i])) { 
       ptr[i] = toupper(ptr[i]); 
      } 
     } 

     printf("%s ", ptr);  

     ptr = strtok(NULL, " ");  
    } 
} 
+0

謝謝。太棒了! – Yenots1

+1

@ Yenots1:是的,現在你只需要複製它並粘貼到你的作業!你今天獲得了一項有用的技能! – usr2564301

0
char str[]=" AbbA hall fameee class"; 
int flag=0; 
int i; 

for(i=0;i<len(str);i++) 
{ 
    if(flag==0 && str[i]==' ') 
    { 
     str[i+1]+=32; 
     flag=1; 
    } 
    else 
    { 
     flag=0; 
    } 

} 
+2

如果你添加了一些解釋,這將是很好的。這對於「幫助功課」類型的問題尤其重要。 – Gray

+0

由於長度而無法編譯。 – Yenots1

相關問題