程式設計實現字串處理函式的功能,既有助於對字串函式功能的理解,又有助於進一步鞏固三種基本結構及字元陣列,本次程式設計實現gets、puts、strcat三個字串處理函式的功能。
1.gets函式----輸入字串的函式
/*gets函式----輸入字串的函式*/
#include
void main()
char a[20];
int i;
/*用迴圈給陣列元素一一賦值*/
for (i=0;;i++)
scanf("%c",&a[i]);
/*輸入回車說明字串輸入完畢*/
if(a[i]=='\n')
break;//跳出迴圈
/*最後,給字串打上結束標誌*/
a[i]='\0';
/*輸出字串,檢查輸入是否正確*/
注:利用for迴圈逐個輸入字元,可以輸入空格,迴圈結束的條件是輸入回車鍵,輸入結束,此時輸入的字串行並沒有結束標誌,需要在迴圈之後利用賦值語句人工加上'\0'結束標誌。
2.puts函式----輸出字串的函式
/*puts函式----輸出字串的函式*/
#include
void main()
char p="mockingbird";
int i;
/*字串看作陣列,將陣列裡的元素一一輸出,以\0為界,遇到它就結束。*/
注:對於已知字串處理中逐個字元迴圈處理,迴圈結束的條件是判斷當前字元是否為'\0'結束標誌。逐個字元輸出時,沒有'\n'回車換行,為使結果輸出易讀,最後需要輸出'\n'回車換行。
3.strcat函式----字串連線函式
/*strcat函式----字串連線函式*/
#include
void main()
void scat(char,char); /*scat函式的宣告*/
char a[30],b[10];
/*輸入字串,以回車鍵表示輸入結束*/
printf("請輸入a串:");
gets(a);
/*輸入字串,以回車鍵表示輸入結束*/
printf("請輸入b串:");
gets(b);
/*呼叫自定義的scat函式連線兩個字串*/
scat(a,b);
/*輸出連線後得到的新串*/
printf("連線後的新串:");
puts(a);
void scat (char a,char b)
int i=0,j;
/*while迴圈找到a字串的末尾,也即統計a字串的字元個數*/
while (a[i]!='\0')
i++;
/*退出while時a[i]='\0',將b[0]賦給a[i]替換a中的'\0',後面乙個乙個貼上去*/
for (j=0;b[j]!='\0';j++)
a[i++]=b[j];
a[i]='\0';//退出for迴圈時,需要加上'\0'
注:對於已知字串處理中逐個字元迴圈處理,迴圈結束的條件是判斷當前字元是否為'\0'結束標誌。字串b連線在字串a之後,需要先找到字串a的結束標誌'\0',即找到連線的位置,然後依次將b串的字元逐個連線在a串之後。a中存放連線後得到的新串,因沒有了結束標誌,需要在最後加上結束標誌'\0'。
字串處理 字串反轉
請原諒博主今天很閒,於是乎博主又開始更新微博了。這次要更新的問題是 編寫乙個函式,反轉乙個單詞的順序。例如 do or do not,there is no try.就要反轉成 try.no is there not,do or do 大家要認真看看這道題,這道題和大家想象的貌似有點不同。首先字串反...
字串處理
uncode與ansi字串轉換 我們使用windows函式multibytetowidechar將多位元組字串轉換成寬字元字串。函式如下 int multibytetowidechar uintcodepage dworddwflags lpcstrlpmultibytestr intcbmulti...
字串處理
byte array new byte 2 array system.text.encoding.default.getbytes 啊 int i1 short array 0 0 int i2 short array 1 0 unicode解碼方式下的漢字碼 array system.text.e...