C語言實現字串相關函式(嵌入式C語言面試)

2021-09-25 21:48:05 字數 3025 閱讀 7260

題目:翻轉字串單詞順序

輸入乙個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變

解題思路:先反轉字串,再翻轉單詞

c語言**如下:

//  字串翻轉函式  pbegin:字串開始位置   pend:字串結束位置

void

reverse

(char

*pbegin,

char

*pend)

while

(pbegin}//總體函式實現

void

reversesenrence

(char

*pdata)

char

*begin=

*pdata;

char

*end=

*pdata;

while

(*end!=

'\0'

) end--

;reverse

(begin,end)

;//翻轉整個句子

while

(*begin!=

'\0'

)elseif(

*end==

''||

*end==

'\0'

)else

}return pdata;

}

字串的左旋轉操作是把字串前面的若干個字元轉移到字串的尾部。請定義乙個這樣的函式實現字串的旋轉操作的功能。

解題思路:把字串分成兩部分,分別對兩部分進行翻轉,然後在對整個字串進行翻轉

//字串翻轉函式

void

reverse

(char

*pbegin,

char

*pend)

while

(pbegin}//左旋轉字串實現

char

*leftrotatestring

(char

*pdata,

int n)

}}

int

strcmp

(const

char

*src,

const

char

*dst)

if(ret<0)

else

if(ret>0)

return

(ret);}

//判斷字串是否相同

intstrcmp

(char

*src,

char

*dst)if(

strlen

(src)

!=strlen

(dst)

)while(!

(ret=

*src-

*dst)

)return ret;

}//忽略大小寫字串比較

#define convert(c) (((c)>='a'&&(c)<='a')?((c)-'a'+'a'):(c))

intstrcmp

(char

*dst,

char

*str)if(

strlen

(dst)

!=strlen

(str)

)while(!

(ret=

convert

(*src)

-convert

(*dst)))

return ret;

}

char

*strcpy

(char

*dst,

const

char

*str)

char

* ret=dst;

while

(*str!=

'\0'

)return ret;

}

每個整數看其轉換進製,從個位到百位都可以通過%操作加上/操作獲得,再用乙個乙個字元陣列儲存0-f,用個位數對應值轉換為字元。 最後還要翻轉。

//整型轉字串。 num :整數  str :存放的字串   radix: 進製數  例如:2 8 10 16

char

*itoa

(int num,

char

*str,

unsigned

int radix)

//判斷正負

if(radix==

10&&num<0)

else

dowhile

(tmp_value)

srt[i]

='\0'

;//翻轉

char tmp;

for(

int j=k;j<=

(i-1)/

2;j++

)return str;

}

int

atoi

(const

char

*src)if(

*src==

'+'||

*src==

'-')

src++;}

elseif(

*src<

'0'||

*src>

'9')

//第一位既不是符號也不是數字,直接返回異常值

while

(*src!=

'\0'

&&*src>=

'0'&&

*src<=

'9')

return s*

(isminus?-1

:1);

}

嵌入式C語言陣列,str函式實現

陣列中所有的資料都是相同的資料型別 int a 10 陣列中的元素的首位址都是連續的 a 0 0x0000 a 1 0x0004 位數跟資料型別有關 c語言不允許使用變數的值進行動態定義,賦初值的方式 在定義時賦值 迴圈賦值 陣列與指標的聯絡 陣列的名字是可以當成指標使用的 a 陣列首元素的位址 陣...

字串處理函式C語言實現(一)

size t lm strlen const char str size t lm strlen2 const char str char lm strcpy char dest,const char src char lm strncpy char dest,const char src,size...

字串處理函式C語言實現(二)

包含以下函式 char lm strchr const char str,char c char lm strstr const char s1,const char s2 char lm strstr2 const char s1,const char s2 char lm strchr cons...