字符串(1)——相關使用

字符串的輸出

printf("%s",字符串首地址);
優點:自帶遇到’\0’就停止的功能
puts(字符串首地址);
優點:不需要佔位符,只需要字符串的首地址,且自動換行
putchar( )
顯示一個字符

字符串的輸入

scanf("%s",內存地址);
注意: scanf("%s",arr); -> 不用再取地址(&),數組名本身就是地址了
優點:自動添加’\0’
缺點:不能輸入帶空格的字符串
gets(內存地址);
缺點:不檢查字符串的長度,可能會造成段錯誤
fgets
char * fgets(char * s, int size, FILE * stream);
從文件當中讀取字符串
優點:可以指定接收的字符串的長度,但實際只能接收size-1個字符,會給’\0’留位置
缺點:當輸入的字符數不足size-1時會連回車符一起接收
注意: 超過指定長度的字符串會殘留在輸入緩衝區中,如若不清理,會導致下一次需要時系統會跳過輸入部分,直接從輸入緩衝區拿
fgets(s, size, stdin);
s 指針地址
size 長度,只讀/只存多少
stdin 標準文件,即終端

字符串的操作

C語言中沒有處理字符串的語句,只能使用標準庫中所提供的函數進行操作
#include <string.h>
strlen(str)
計算字符串的長度,不包括’\0’
strcpy(str,“xxx”)
字符串拷貝,使用字符串字面值(=)給字符數組賦值只能在定義時使用,之後的賦值必須使用strcpy函數
注意:有返回值,puts()打印
strcat(str1,str2)
在str1後追加str2
注意長度問題
strcmp(str1,str2)
按照字典序比較兩個字符串,有三種返回值
str1 > str2 結果爲1(正值)
str1 < str2 結果爲-1(負值)
str1 = str2 結果爲0
strstr(str1,str2)
從str1中查找str2,返回str2在str1中首次出現的位置,如果返回空,則表示不存在
#include <stdlib.h>
int atoi(const char * nptr);

將字符串中的每一個字符轉換成整數拼接出來,並可以加以運算,以下同理(轉換的類型不同)
long atol(const char * nptr);
long long atoll(const char * nptr);
long long atoq(const char * nptr);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章