2013-10-16 299 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

相关问题