C语言-字符串函数

235 阅读1分钟

putchar: 像标准输出写一个字符
getchar:从标准输入读入一个字符
EOF(-1)

strlen:返回字符串长度

#include<stdlib.h>
#include<string.h>
int mylen(const char* s)//自己实现strlen
{
    int index = 0;
    while (s[index] != '\0')
    {
        index++;
    }
    return index;
}
int main()
{
    char line[] = "hello";
    printf("%lu\n", strlen(line));
    return 0;
}

strcmp:比较两个字符串
int strcmp(const char* a,const char *b)
返回; 0:a == b;
1:a >b;
-1:a<b;(比较结果以asc码为准)\

#include<stdlib.h>
#include<string.h>
int mycmp(const char* a, const char* b)//自己实现字符串比较
{
    while (*a == *b && *a != '\0')
    {
        a++;
        b++;
    }
    return *a - *b;
}
int main()
{
    char s1[] = "aaf";
    char s2[] = "aaf";
    printf("%d\n", mycmp(s1, s2));
    return 0;
}

strcpy:拷贝一段字符串
原型 char* strcpy(char* dst,const char* src) 把src中的字符串拷贝给des,其中两段字符串不重叠,返回dst的值\

#include<stdlib.h>
#include<string.h>
char* mycpy(char* s1, const char* s2)//自己实现strcmp函数
{
    int index = 0;
    while (s2[index] != '\0')
    {
        s1[index] = s2[index];
        index++;
    }
    s1[index] = '\0';
    return s1;
}
int main()
{
    char s1[] = "aaf";
    char s2[] = "aif";
    printf("%s\n", strcpy(s1, s2));
    return 0;
}

strcat:字符串连接函数
函数原型:char* strcat(char s1,const char* s2);把s2拷贝到s1的后面,返回s1(s1必须有足够的空间)

{
    char s1[10] = "aaf";//保证有足够的空间给s2
    char s2[] = "aif";
    printf("%s\n", strcat(s1, s2));
    return 0;
}

strchr:从字符串里面寻找字符第一次出现的位置 原型char *strchr(const char *s,int c);
strrchr:同上,只是是从字符串右边开始寻找
找不到返回null

#include<stdlib.h>
#include<string.h>
int main()
{
    char s1[10] = "langues";
    char* p = strchr(s1, 'g');
    printf("%s\n", p);
    return 0;
}

strstr:字符串中寻找字符串 原型:char *strstr(const char s1,const char s2);
strcasestr:同上,只不过会忽略大小写;

#include<stdlib.h>
#include<string.h>
int main()
{
    char s1[10] = "langues";
    char s2[] = "e";
    char* p = strstr(s1, s2);
    printf("%s\n", p);
    return 0;
}