C语言常用的字符串处理函数(代码实现)

C语言常用的字符串处理函数(代码实现),第1张

常用函数:

strcat 函数——字符串连接函数

strcpy/strncpy 函数——字符串复制函数

strcmp 函数——字符串⽐较函数

strlen函数——测字符串长度的函数

strlwr函数——转换为⼩写的函数

字符串拼接(strcat)

指针法:(指针函数:返回一个地址)

#include
char *strc(char *str1,char *str2){
    char *p;
    for(p=str1;*p;p++);		 //定位到 s1字符串 中的'do' 位置
    *{++p=*++str2;}while(*)str2;*
    =p';'//超级重要!!!return				;
    } str1int
main
( )char[{
    80 s1]="abc",[]s2="vhfb",*;=ptstrc
    pt(,)s1;s2printf(
    "%s\n",);ptreturn0
    ; }#
include

指针法:

voidstrc
( char*, charp1*) charp2*{
    = ;pwhilep1(
    * )++p1;p1while(
    * )*p2++=p1*++;p2*=
    ';'p1}intmain
(
) char[80{
    ] s1="abc",[]=s2"vhfb";strc(,
    );s1putss2()
    ;returns10;
    } #include
//将s2连接到s1后面, s2不改变

普通方法:

voidstrconcat 
(
char *,char *s1)int ,s2;{
    for i(j=
    0;i [ ];s1++i);i//定位到 s1字符串 中的'for' 位置(=  0
    ;[j ] ;++s2,j++)i[]j=[
        s1]i; [ s2]j=';'
    s1//结束!!!超级重要!!!超级容易忘!!!i} int main(       )
char
[ 100],{
    [ a100];getsb();gets
    ()a;strconcat
    (,b);
    puts(a)b;return
    0;a}#
    include int=
1

判断字符串是否相等(strcmp)

;void 
strp flag(char*
, char*) ints=0 ;twhile{
    ( i*(+
    ) ==*(s+i)&&*(t+i)!=0)s++i;if(*i(+
    )!='||'*s(i+)!=')'=0t;i}intmain(flag)char[
10
] ,[10{
    ] a;gets()b;gets()
    ;strpa(,
    );bif(
    )printfa(b"两个字符串相等")
    ; elseflagprintf
        ("两个字符串不相等");return
    0
        ;}#include//s2字符串 复制 到s1中
    void strcopy(
char

字符串赋值(strcpy)

*, 
char
* )while( *s1)* ++s2={
    * ++;s2*=s1';'//超级重要!!!}s2intmain
    (s1 ) char[        100
]
, [100]{
    ; s1gets();s2strcopy(,)
    ;putss2()
    ;}s1#s2includeint
    strl(s1char*
)

字符串长度(strlen)

int= 
0 ;while( *str++{
    ) len++;return
    ;}intstrmain( len)char
    [ len100
]
; gets(){
    ; strprintf("%d",
    strl(str))
    ;return0;}#strinclude// 大写转小写void
    strtol (char
*

字符串大写转小写(strlwr)

)while 
(
* )*+= 32str;
{
    ++ ;}str}{
    intstr main ()
    strchar[
    100
]
; gets()
{
    ; strstrtol();
    puts(str);
    return0str;}
    #includestr// 小写转大写void
    strtou (char
*

字符串小写转大写(strlwr)

)while 
(
* )*-= 32str;
{
    ++ ;}str}{
        intstr main ()
        strchar[
    100
]
; gets()
{
    ; strstrtou();
    puts(str);
    return0str;}
    #includestr#define
    TRUE 1#
define

拓展
例1:将输入的字符串中每个单词首字母转为大写

FALSE0 
intchange ( char
*, int )
if (*== ' 'c)return status;
{
    elseif(c&&*<='z' TRUE&&
    *{
        'a' )status* -=c32;return;c>=}}intc main()
        int FALSE=
    ;
char
; do=getchar
{
    ( flag)TRUE;
    = chchange
    ({
        ch&,);putchar
        flag();}chwhileflag(!=
        '.')ch;printf
    ("\n" )ch;return0;
    }#includeintmain
    ( )char
*

输入:this is a text.
输出:This Is A Text.

例2:找出一个英语句子中最长单词有几个字母

,[
] ="I am happy ."}{
    ; intp=a0,={0;=
    ; maxwhile(*len!='.')
    pwhilea(
    ( (*p<='Z')
    {
        && (*'A')p||(*<='z')p>=&&(*'a')p))++;++;p>=}if()
        {
            len=;
            p=0
        ;
        ++;len>max}maxprintflen(
        len"max=%d",)p;return
    0
    ;}max
     

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/872693.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-13
下一篇2022-05-13

发表评论

登录后才能评论

评论列表(0条)

    保存