程式說明:讀入乙個字串,當字串以.結尾且後面無任何資料時,停止讀入。讀入後的字串第乙個字母必須是大寫,
且其餘字母均為小寫並過濾掉字元之間多餘的空格。
執行結果:
enter a
string: the answer to life, the universe, and everything
is 42.
the answer to life, the universe, and everything
is 42.
string.cpp
#include
#include
#include
using
namespace
std;
void readstring(string& s);
int main()
void readstring(string& s) while (! isalpha(c)); // 設定字串必須以字母開頭
if (islower(c)) // 如果字串首字母為小寫將其轉換為大寫
c = toupper(c);
s = c;
/* 當 c = 『.' 時:
* 將c追加至字串s末尾處,讀入下個字元至c判斷其是否為'\n', 如果是結束外層迴圈;
* 不是則判斷其是否為大寫字母,並將大寫字母轉換為小寫追加至字串s末尾處,
* 繼續外層迴圈。
* 當 c != '.' 時:
* 判斷其是否為空格,是則將c追加至字串s末尾處,讀入下個字元至c判斷其是否為空格
* 直到讀入的資料非空格時結束內層迴圈,判斷其是否為大寫字母,並將大寫字母轉換
* 為小寫追加至字串s末尾處,繼續外層迴圈。
*/while (true)
} else
if (isupper(c))
c = tolower(c);
s += c;
}}
字串讀入問題 C語言
字串讀入3種形式 scanf gets getchar scanf不可以讀入空格,讀入空格即可停止,算乙個字元陣列 不含空格 可以應用於2個句子間有很多空格,但2個句子本身沒有空格 gets可以讀入空格,可以讀入含有空格的句子的時候,getchar是讀入乙個字元,可以讀入空格,經常用於處理讀掉空格。...
C 字串讀入函式(gets getline)
對於字串的讀入,我們有scanf和cin這兩個最為經典的函式,但是我們發現這兩個函式如果遇到空格或換行就結束了。可有時我們希望讀到空格時不要結束,讀到回車在結束。甚至有時我們希望連遇到空格也不結束,直到遇到乙個指定的字元時才結束本次讀入。而cstdio和iostream標頭檔案為了解決這個問題分別提...
C 讀入一行字串
在c 中,要讀取一行一共有三種方法 一.對於字元陣列 方法一 getline 讀入整行資料,它使用回車鍵輸入的換行符來確定輸入結尾。呼叫方法 cin.getline str,len 第乙個引數str是用來儲存輸入行的陣列名稱,第二個引數len是要讀取的字元數。1 include 2 using na...