学习C语言的第27天

发布时间:2024年01月24日

字符串追加

? srcat()

char*strcat(char *dest, const char *src)

将src字符串连接到dest尾部,'\0’也会追加过去

#include<stdio.h>
void my_strcat(char*dest,const char*src)
{
    while(*dest)//找到dest字符串中'\0'的位置
    {
        dest++;
    }
    while(*dest++=*src++);//将src中的字符串连接到dest末尾
}
int main()
{
    char dest[100]="hello";
    char src[]="world";
    my_strcat(dest,src);
    printf("%s\n",dest);
    return 0;
}
输出结果:helloworld

字符串的有限追加

strncat()

char*strcat(char *dest, const char *src,size_t n)


将src字符串的前你个连接到dest尾部,'\0’也会追加过去

#include<stdio.h>
void my_strncat(char*dest,const char*src,size_t n)
{
     while(*dest)//找到dest字符串中'\0'的位置
    {
        dest++;
    }
    while((*dest++=*src++)&&--n);//将src中的字符串连接到dest末尾,n=0时也会进行赋值
}
int main()
{
    char dest[100]="hello";
    char src[]="world";
    my_strcat(dest,src,3);
    printf("%s\n",dest);
    return 0;
}
输出结果:hellowor

字符串比较

strcmo()

char**strcmp(char* *s1,const char *s2)

比较s1和s2的大小,比较的是字符ACSLL码的大小

#include<stdio.h>
void my_strcmp(char*s1,const char*s2)
{
   while(*s1==*s2)
    {
        if(*s1!='\0'&&--s2)
        {
            return 0;
            s1++;
            s2++;
        }
    }
    return *s1>*s2?1:-1;
}
int main()
{
    char ch1[]="hello world";
    char ch2[]="hello world";
    int v=my_strcmp(ch1,ch2);
    if(v=0)
    {
        printf("相等\n");
    }
    else if(v=1)
    {
       printf("s1大\n");
    }
    else
    {
        pirntf("s2大\n");
    }
    return 0;
}
输出结果:相等
字符串有限比较

strncmo()

char * strcmp(char *s1,const char *s2,size_t n)

比较s1和s2前你个字符的大小的大小,比较的是字符ACSLL码的大小


#include<stdio.h>
void my_strncmp(char*s1,const char*s2,size_t n)
{
    int i;
    for(i=0;i<n&&s1[i]&&s2[i];i++)//s1[i]&&s2[i]判断未至结尾
    {
        if(s1[i!=s2[i]])
        {
            return s1[i]>s2[i]?1:-1;
        }      
    }
    return 0;
}
int main()
{
    char ch1[]="hello world";
    char ch2[]="hello world";
    int v=my_strncmp(ch1,ch2,5);
    if(v=0)
    {
        printf("相等\n");
    }
    else if(v=1)
    {
       printf("s1大\n");
    }
    else
    {
        pirntf("s2大\n");
    }
    return 0;
}
输出结果:相等
文章来源:https://blog.csdn.net/2301_79690656/article/details/135832602
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。