字符串的常用函数

1、strlen

格式:变量名1=strlen(变量名2);          //变量名1注意要先定义  int 变量名1;

#include <stdio.h>
#include <string.h>
int main()
{
    char a[8];
    int len;
    printf("请输入一个字符串:");
    gets(a);
    len = strlen(a);
    printf("字符串的长度为:%d\n", len);
    
    return 0;
}

2、strcpy

格式:strcpy(a,b);      //表示把b中的内容复制到a中去,第二个参数是源字符串

情况一:(复制前后均没有越界情况)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[16]="China";
    char b[16]="Chinese";
    strcpy(a, b);
    printf("a=%s\n", a);
    printf("b=%s\n",b);
    
    return 0;
}

情况二:(复制后发生越界,很危险)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[8]="China";
    char b[16]="Chinese people";
    strcpy(a, b);
    printf("a=%s\n", a);
    printf("b=%s\n",b);
    
    return 0;
}

情况三:(复制源比较短,复制源的字符串结束符也会复制过去)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[16]="Chinese";
    char b[16]="China";
    strcpy(a, b);
    printf("a=%s\n", a);
    printf("b=%s\n",b);
    
    return 0;
}

3、strncpy

能够有效防止越界的问题

格式:strncpy(a,b,n);       //表示从b中复制n个字符到a中

 情况一:(要拷贝的字符个数小于等于源字符串的长度)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[8]="China";
    char b[8]="abcde";
    strncpy(a, b,3);
    printf("a=%s\n", a);
    printf("b=%s\n",b);
    
    return 0;
}

情况二:(要拷贝的字符个数大于源字符串的长度:没有的用0补齐)

#include <stdio.h>
#include <string.h>
int main()
{
    char a[8]="China";
    char b[8]="abc";
    strncpy(a, b,5);//拷过去之后a=abc00
    printf("a=%s\n", a);//由于是以字符串的形式打印,所以即使有数字也显示不出来
    printf("b=%s\n",b);
    printf("a[3]=%d  a[4]=%d\n", a[3], a[4]);//以整数的形式看是否能打印出来
    
    return 0;
}

4、strcat

格式:strcat(dest1,dest2);    //表示把dest2的内容拼接到dest1后面去,dest2的内容从dest1的字符串结束符开始覆盖

#include <stdio.h>
#include <string.h>
int main()
{
    char pro[32];
    char city[32];
    printf("请输入您的省份:");
    gets(pro);
    printf("请输入您的城市:");
    gets(city);
    strcat(pro, city);
    printf("您所在地区为:%s\n", pro);
    printf("pro=%s\n", pro);
    printf("city=%s\n", city);

    return 0;
}

 

猜你喜欢

转载自www.cnblogs.com/zx9907/p/10420142.html