C語言從零開始(十四) 字串處理

2022-09-18 02:57:21 字數 2533 閱讀 5678

在軟體開發過程中,字串的操作相當頻繁。在標準c語言庫中提供了很多字串處理的函式。今天我們來介紹一些常用的字串處理函式。

1. 字串輸入輸出

1.1 printf() scanf()

之前我們學習過使用「%c」進行字元的輸入輸出。字串的輸入輸出大體相同,唯一的區別是採用「%s」。

請看下面這段**:

int main()

這段**實現的功能是從鍵盤輸入一行字串,再列印出來。

注意:字串陣列str用來接收從鍵盤輸入的字串

str的長度為10,因此不能輸入長度超過10的字串

如果輸入字串長度超過10,記憶體中會越界,這樣就有可能造成系統程式崩潰。但並不是每次都會出現,因此需要各位注意。

1.2 puts() gets()

puts() 把乙個字串列印到螢幕上

gets() 從鍵盤讀入乙個字串

這兩個函式的定義在string.h中,使用時需要新增

#include

puts()

格式puts(字元陣列)

功能向顯示器輸出字串(輸出完,自動換行,即用)

gets()

格式gets(字元陣列)

功能從鍵盤輸入一以回車結束的字串放入字元陣列中,並自動加"\0"

說明輸入串長度應小於字元陣列維數,字串中可以包含空格

例如:#include

#include

void main()

同樣需要注意陣列長度的問題。

2. 字串轉換

字串經常會用到和其他型別進行轉換,那麼就會用到下面這些函式。

2.1 itoa()

功能把一整數轉換為字串。itoa是英文integer to array的縮寫

用法char *itoa(int value, char* string, int radix);

引數value: 待轉化的整數。

radix: 是基數的意思,即先將value轉化為radix進製的數,範圍介於2-36,比如10表示10進製,16表示16進製制。

* string: 儲存轉換後得到的字串。

返回值char * : 指向生成的字串, 同*string。

標頭檔案"stdlib.h"

程式例:

int main()

2.2 atoi()

功能把字串轉換成整型數。array to integer 的縮寫.

函式說明

atoi()會掃瞄引數nptr字串,如果第乙個字元不是數字也不是正負號返回零,否則開始做型別轉換,之後檢測到非數字或結束符 \0 時停止轉換,返回整型數。

原型int atoi(const char *nptr);

標頭檔案「stdlib.h」

程式例int main()

執行結果:

string = 12345.67 integer = 12345

2.3 sprintf()

功能把格式化的資料寫入某個字串

原型int sprintf( char *buffer, const char *format [, argument] … );

返回值字串長度(strlen)

這是乙個很有用的函式,用法類似printf,只不過它不是把結果列印在螢幕上,而是儲存在乙個陣列中。那麼它能做什麼呢?說兩個最常用的。

int main()

第一句sprintf把兩個字元陣列拼接成了乙個新陣列,寫入s中。第二個sprintf把乙個浮點數格式化後寫入到字元陣列s中。

3. 字串常用方法

3.1 strcpy

功能:拷貝乙個字串到另乙個

用法:char *stpcpy(char* destin, char* source);

3.2 strcat

功能:字串拼接函式

用法:char *strcat(char* destin, char* source);

3.3 strchr

功能:在乙個串中查詢給定字元的第乙個匹配之處

用法:char *strchr(char* str, char c);

3.4 strcmp

功能:串比較

用法:int strcmp(char* str1, char* str2);

說明:當s1s2時,返回值》0

即:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇'\0'為止。

3.5 strcpy

功能: 串拷貝

用法: char *strcpy(char* str1, char* str2);

3.6 strerror

功能:返回指向錯誤資訊字串的指標

用法:char *strerror(int errnum);

3.7 strset

功能:將乙個串中的所有字元都設為指定字元

用法:char *strset(char* str, char c);

3.8 strstr

功能:在串中查詢指定字串的第一次出現

用法:char *strstr(char* str1, char* str2);

從零開始學習c語言

including 進行相關的預處理操作 include稱為檔案包含命令 而 中為頭部檔案 首檔案 int main int 是c語言基本資料型別之一,main函式是乙個程式的入口部分,printf hello,world n printf是產生格式化輸出的函式 輸出函式 想控制台輸出文字 字元,n...

從零開始學C語言

從零開始學c語言 閬苑祁寒 更新說明 此版本是最終版本。初始版本有關helloworld的內容調到了附錄部分。寫在前面 本文從乙個初學者的角度,給出了對c語言的簡單理解。最近一次更新調整了之前的敘述方式。目錄part1 從hello world講起 part2 知識結構梳理 part3 一路走來的習...

C語言從零開始 const初識

const是什麼 const 用於修飾變數,表示該變數是唯讀的,不可修改 在c 裡,引申了這個用 法,表示常量 include int main void const 在乙個表示式中到底修飾誰?const修飾的是誰?由下面的例子可以得到結論 const修飾變數時,遵循就近原則 include int...