C 《讀入字串並過濾掉不合格的字元》

2021-07-05 05:33:07 字數 1038 閱讀 8725

程式說明:讀入乙個字串,當字串以.結尾且後面無任何資料時,停止讀入。讀入後的字串第乙個字母必須是大寫,

且其餘字母均為小寫並過濾掉字元之間多餘的空格。

執行結果:

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...