C语言编程:输入一个由字母组成的字符串,分别以大写字母和小写字母形式输出该字符串

急求,急求C语言达人打救小弟,小弟将滴水之恩定当30分报之,谢谢

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
// 把字符串转换为小写
char* str2lower(char *str)
{
char *p = str;
while (*str){
*str = tolower(*str);
str++;
}
return p;
}

// 把字符串转换为大写
char* str2upper(char *str)
{
char *p = str;
while (*str){
*str = toupper(*str);
str++;
}
return p;
}

/* 使用方法:
* command [A|a] string
* 参数说明:
* string是要转换的字符串
* [A|a]表示将字符串string转化为大写还是小写
*/
int main(int argc, char *argv[])
{
if (argc != 3 || strlen(argv[1]) != 1){
printf("usage: command [A|a] string\n");
return EXIT_FAILURE;
}

if (isupper(argv[1][0]))
printf("字符串的大写是:%s\n", str2upper(argv[2]));
else if (islower(argv[1][0]))
printf("字符串的小写是:%s\n", str2lower(argv[2]));
else
printf("原始的字符串是:%s\n", argv[2]);

return EXIT_SUCCESS;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-05
#include <stdio.h>
#include <string.h>

#define MAX_LENGTH 1024

int main(int argc,char** argv)
{
char str[MAX_LENGTH];
char Lower[MAX_LENGTH];
char Upper[MAX_LENGTH];
printf("请输入字符串: ");
scanf("%s",str);
int index =0 ;
int L_index=0;
int U_index=0;
int length = 0;
length = strlen(str);
for(index=0; index<length;index++)
{
if(str[index]<='z' && str[index]>='a')
{
Lower[L_index]=str[index];
L_index++;
}
else
{
Upper[U_index]=str[index];
U_index++;
}
}
Lower[L_index]='\0';
Upper[U_index]='\0';
printf("大写字符串: %s\n",Upper);
printf("小写字符串: %s\n",Lower);
return 0;
}