有关string.h头文件的常用函数

一:strcat函数

原型: char *strcat(char *dest, const char *src);
作用:连接两个字符串

//strcat函数的实现

#include <stdio.h>
#include <string.h>

int main( void )
{
    int i;
    int j;
    char buf[100]="mao maochong"; //buf数组必须保证足够大,能容的下这两个数组
    char tmp[]="hello cat";

    for(i=0;buf[i]!=0;i++)
        ;
    for(j=0;tmp[j]!=0;j++)
        buf[i++]=tmp[j];

    buf[i]=0;       //给最后字符串后面加一个'\0',这为了方便,我就都写为0了;

//    strcat(buf,tmp);  
    printf("%s\n",buf);


    return 0;
}

二:strncmp函数

原型: int strcmp(const char *s1, const char *s2);
作用:比较两个字符串大小。s1等于s2返回0,s1大于s2返回大于0的数,s1小于s2返回小于0的数

//字符串比较函数
#include <stdio.h>
#include <string.h>

int main( void )
{
    int i;
    char buf1[]="this is maomaochong";
    char buf2[]="this is maomaochong";

    for(i=0;buf1[i]==buf2[i] && buf1[i]!=0 && buf2[i]!=0;i++)
        ;
    if(buf1[i]==0 && buf2[i]==0)
        printf("相等!\n");
    else
        printf("不相等!\n");
/*

    if(strcmp(buf1,buf2)==0)
        printf("相等!\n");
    else
        printf("不相等!\n");
*/
    return 0;
}

三:strncmp函数

原型:int strncmp(const char *s1, const char *s2, size_t n);
作用:和strcmp类似,只不过它只比较字符串s1,s2的前n个字符。

//比较俩个字符串的前n个字符

#include <stdio.h>
#include <string.h>

int main( void )
{
    int i;
    char buf1[]="this is maomaoyu";
    char buf2[]="this is maomaochong";

    if(strncmp(buf1,buf2,15)==0)
        printf("相等!\n");
    else
        printf("不相等!\n");

    return 0;
}

4.strcmp函数

原型: char *strcpy(char *dest, const char *src);
作用:拷贝字符串,把字符串src拷贝到字符串dest中,应该保证dest字符串可以能容的下src字符串

//字符串拷贝函数
#include <stdio.h>
#include <string.h>

int main( void )
{
    int i;
    char buf[100]="she is a girl";  //应该保证buf数组大于tmp数组,能容的下
    char tmp[]="thank you";

    for(i=0;buf[i]!=0;i++)
        buf[i]=tmp[i];

    buf[i]=0;

//  strcpy(buf,tmp);
    printf("%s\n",buf);

    return 0;
}

5.strlen函数

原型:size_t strlen(const char *s);
作用:计算字符串的长度

#include <stdio.h>
#include <string.h>

int main ( void )
{
    char buf[100]={"mao mao chong"}; 
    int i=0;
/*
    for(i=0;buf[i]!='\0';i++)  //for循环计算字符串长度。
        ;
*/
    while(buf[i++]) //如果要用while的话,输出的时候要减去一,因为不管buf[i++]是真是假,每次执行完后i都加1;    
        ;            

//    i=strlen(buf);
    printf("%d\n",i-1);

    return 0;
}

6.strchr函数

原型:char *strchr(const char *s, int c);
作用:在字符串s中查找字符c第一次出现的位置,并返回所在位置。

//查找字符的函数

#include <stdio.h>

int main( void )
{
    int i;
    int idx=-1;
    char string[]="this is maomaochong";
    char ch='s';

    for(i=1;string[i]!='\0';i++)
    {
        if(string[i]==ch)
        {
            idx=i;
            break;
        }
    }

    if(idx==-1)
    {
        printf("没找到!\n"); 
    }
    else
    {
        printf("位置是:%d\n",idx);  
    }

    return 0;
}

7.strstr函数

原型: char *strstr(const char *haystack, const char *needle);
作用:在字符串haystack中查找字符串needle,并返回位置

#include <stdio.h>

int main( void )
{
    int i;
    int j;
    int idx=-1;
    char string[]="this is maomaochong";
    char substr[]="mao";

    for(i=0;string[i]!=0;i++)
    {
        for(j=0;substr[j]!=0;j++)
        {
            if(string[i+j]!=substr[j])
                break;
        }
        if(substr[j]==0)
        {
            idx=i;
            break;
        }
    }
    printf("%d\n",idx);

    return 0;
}

8.利用指针求字符串长度

注意:++和的优先级是一样的,但是,这个是从右至左结合的,所以str先和++结合计算,然后在和结合,不过*str还是取的是没有++以前的值。

#include <stdio.h>

int strlen(const char *str)
{
    int i=0;
    while(*str++)  //注意这个的优先级
        i++;

    return i;
}

int main( void )
{
    char buf[]="cao lao shi zhao shang hao"; 
    printf("%d\n",strlen(buf));
}

9.利用指针实现字符串的拷贝

#include <stdio.h>

void strCpy(char *dst,const char *src)
{
    while (*dst++ = *src++)
        ;
}

int main( void )
{
    char buf[]="shell";

    strCpy(buf,"cao lao shi");

    puts(buf);
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值