如何在c語(yǔ)言中計(jì)算字符串長(zhǎng)度?
C語(yǔ)言計(jì)算字符串長(zhǎng)度
1、自定義函數(shù)求長(zhǎng)度
2、使用strl
c語(yǔ)言中兩個(gè)長(zhǎng)度不一樣的數(shù)組,怎么找相等的字符?
用strcmp阿,不管長(zhǎng)度是否相等都能用。
原型:externintstrcmp(constchar*s1,constchar*s2);
用法:#includestring.h
功能:比較字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
說(shuō)明:
當(dāng)s1s2時(shí),返回值0
當(dāng)s1s2時(shí),返回值0
當(dāng)s1s2時(shí),返回值0
即:兩個(gè)字符串自左向右逐個(gè)字符相比(按ASCII值大小相比較),直到出現(xiàn)不同的字符或遇
c語(yǔ)言中怎么實(shí)現(xiàn)任意長(zhǎng)度字符串輸入?
其實(shí)核心就是實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,無(wú)論字符串多長(zhǎng),都能夠儲(chǔ)存。
用getchar一個(gè)一個(gè)得到字符,直到文件結(jié)束。
核心代碼實(shí)現(xiàn):
intn0,k100//初始化,字符串長(zhǎng)度為0,字符串空間長(zhǎng)度為100char*s2NULL,s1(char*)malloc(100)//初始化字符串空間if(s1NULL)return//內(nèi)存分配失敗,返回while((cgetchar())!EOF){//判斷是否到文件結(jié)束,一個(gè)個(gè)讀取字符if(kltn){//當(dāng)前字符串長(zhǎng)度大于等于字符串空間長(zhǎng)度時(shí)k*2//長(zhǎng)度增長(zhǎng)2倍s2(char*)realloc(s1,k)//重新分配內(nèi)存if(s2NULL){//內(nèi)存分配失敗free(s1)//釋放已分配內(nèi)存return}else{//內(nèi)存分配成功s1s2}}s1[n]c//字符串賦值字符}s1[n]0//字符串末尾置為0