亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

問1道 怎樣把小寫字母變成 大寫字母的,但不能用Strupr,toupper等函數

問1道 怎樣把小寫字母變成 大寫字母的,但不能用Strupr,toupper等函數

C
慕運維0661890 2016-03-28 23:36:12
輸入 ?1行文字列 ?CYU - yan??!char str【100】?有兩個 函數 ?Upper_String(),Lower_String(),但不能用?Strupr,toupper等函數利用 ASCII碼 ?‘a’ 97,‘A’ 65,即利用 大小寫 32的差 來 編寫代碼最后輸出 的 結果為??Upper_String() :CYU-YAN!!Lower_String(): cyu-yan??!望大神 告知。
查看完整描述

2 回答

?
慕運維0661890

TA貢獻1條經驗 獲得超0個贊

#include?<stdio.h>
#include?<string.h>
to_Upper_String();
to_Lower_String();
?char?lowerStr[100];?
?char?upperStr[100];
?int?length,i;
???int?main()
{
????char?str[100];?????
????printf("Input?String??");
????gets(str);
????to_Upper_String(str,upperStr);
????to_Lower_String(str,lowerStr);
????printf("\nto_Upper_String():?%s\n",upperStr);
????printf("\nto_Lower_String():?%s\n",lowerStr);
????return?0;
}
void?to_Upper_String(const?char?*input,char?*output)
{???
????length?=?strlen(input);
????for(i=0;i<?length;i++);
????{
????????if(input[i]?>=?'a'?&&?input[i]?<=?'z')?
????????????output[i]?=?input[i]?-?'a'?+?'A';
????????else????//?其他的不變?
????????????output[i]?=?input[i];
????}
????output[length]?=?'\0';
}
void?to_Lower_String(?const?char?*input,?char?*output)
{
????length?=?strlen(input);
????for(i=0;i<?length;i++);
????{
????????if(input[i]?>=?'A'?&&?input[i]?<=?'Z')??//?如果是大寫字母,則轉換為對應的小寫字母?
????????????output[i]?=?input[i]?-?'A'?+?'a';
????????else??//?其他的不變?
????????????output[i]=input[i];
????}
????output[length]?=?'\0';
}

報錯?error?C2371:?“to_Upper_String”:?重定義;不同的基類型????21行??
?????error?C2371:?“to_Lower_String”:?重定義;不同的基類型????33行
?????這是??為什么?????


查看完整回答
反對 回復 2016-03-30
  • guozhchun
    guozhchun
    你函數聲明寫錯了,自然編譯錯誤。把to_Upper_String();to_Lower_String();兩行換成: void to_Lower_String( const char *input, char *output); void to_Upper_String(const char *input,char *output); 這樣就可以編譯成功了。 PS:for(i=0;i< length;i++);在for循環后加“;”還不如不寫for循環
  • 2 回答
  • 0 關注
  • 1775 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號