1. 程式人生 > >程式設計實現一句話字母的大小寫轉換

程式設計實現一句話字母的大小寫轉換

/*程式設計實現函式
  char *changeWord(char *src, int len)
  其中:len 為輸入字串的長度
例: ①輸入:hello
      輸出:HeLlO
     ②輸入:welcom to AHUT
  輸出:WeLcOm To AhUt
每個單詞首字母大寫,之後大小寫輪流
*/
#include <stdio.h>
#include <string.h>
char changeWord(char *src,int len)
{
int i=0;
int sign1=0,sign2=0;
printf("轉換後c=");
while(i<len)
{
if(i%2==(0+sign1))
{
if((src[i]>='a')&&(src[i]<='z'))
src[i]-=32;
if(src[i]=='\0')
{
sign1=1;
sign2=-1;
}
}
if(i%2==(1+sign2))
{
if((src[i]>='A')&&(src[i]<='Z'))
src[i]+=32;
if(src[i]=='\0')
{
sign1=0;
sign2=0;
}
}
printf("%c",src[i]);
i++;
}
putchar('\n');
}
int main()
{
char c[100];
int len;
printf("請輸入一個字串c:\n");
gets(c);
len=strlen(c);
printf("字串長度為:%d\n",len);
printf("轉換前c=%s\n",c);
changeWord(c,len);
return 0;
}

/*標誌位sign實現判斷條件的轉換。當輸入一句話的時候,單詞中間有空格,空格之後的單詞首字母要大寫。原本判斷第一個單詞時偶數位大寫,奇數位小寫,那若空格在偶數位,那下一個單詞奇數位就變成了大寫,就不能用原來的判斷條件進行判斷,此時用sign將判斷條件改變,即可實現大小寫轉換。