瀏覽單個文章
嘴炮見習生
New Member
 

加入日期: Mar 2010
文章: 9
引用:
作者㊣經藝湘㊣
使用者輸入一字串並輸入1.2.3.執行
1.轉大寫(用strupr字串轉換函數)
2.轉小寫 strlwr
3.大小寫互轉
重點要用函數表達


初學者中的初學者,希望大家能盡量講的簡單一點
感激不盡


即然是初學者中的初學者,那麼可以參考一下我這個初學者的寫法

另外我在學習的過程中,有個疑問,想順便在這邊問一下高手們
我大概知道標頭檔的目的,但為何程式編輯軟體不一次就把指令都內建好,不用再include
因為我經常為了用一道指令,但不知要include哪個標頭檔。


以下是copy樓主的程式碼下來改的,可能還有很多bug,不過算了,主要是為了熟練一些指令的用法

#include "stdafx.h"
#include <iostream>
#include <string>
#include <ctype.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
char S[20]={0};
int M;
cout<<"input a string :"<<endl;
cin.getline(S,20);
cout<<"請按數字1~3選擇轉換模式: 1.轉大寫 2.轉小寫 3.大小寫互轉"<<endl;
cin>>M;

cout<<"輸入的字串是:"<< S <<endl;
cout<<"輸出的字串是:";

//先用 for 迴圈把 S陣列 裡的字元一個一個抓出來審判
//再用 if else 依據使用者選擇的個模式做轉換(用switch-case也行)
for (int i=0;i<20;i++){
if ( M == 1 ){ //模式 1
if ( 0 != islower(S[i])){ //若字元是小寫字母
S[i]=toupper(S[i]); //轉大寫
cout<< S[i]; //輸出
}
else{
cout<< S[i]; //否則就是其他字元或大寫輸出
}
}

else if ( M == 2 ){ //模式 2
if ( 0 != isupper(S[i])){ //若字元是大寫字母
S[i]=tolower(S[i]); //轉小寫
cout<< S[i]; //輸出
}
else{
cout<< S[i]; //否則就是其他字元或小寫輸出
}
}

else if ( M == 3){ //模式 3
if ( 0 != islower(S[i])){ //若字元是小寫字母
S[i]=toupper(S[i]); //轉大寫
cout<< S[i]; //輸出
}
else ( 0 != isupper(S[i]));{ //若字元是大寫字母
S[i]=tolower(S[i]); //轉小寫
cout<< S[i]; //輸出
}
}

else { //白目模式
cout<<"你很白目的輸入了超過了20個字元,或者選 1、2、3 以外的模式…凸=.=凸"<<endl;
}
}

system("pause");
return 0;
}
舊 2010-06-12, 06:05 PM #57
回應時引用此文章
嘴炮見習生離線中