【C语言】string.h中的常用函数

1.strlen

函数名:strlen
功能:求得字符串的长度
说明:strlen(str)为字符串str的长度

实例:

#include <stdio.h>
#include <string.h>
int main()
{
    char str[] = "I love Study";
    printf("%d\n",strlen(str));//输出结果为 12
    return 0;
}

2.strcpy

函数名:strcpy
功 能:将一个字符串赋值给另一个字符串
说明:strcpy(str1,str2)表示将str2赋值给str1

实例:

#include <stdio.h>
#include <string.h>
int main()
{
    char str1[] = "I love Study";
    char str2[15];
    strcpy(str2,str1);
    printf("%s\n",str2);//输出结果为 I love Study
    return 0;
}

3.strncpy

函数名:strncpy
功能:将一个字符串的前一部分字符赋给另一字符串
说明:strncpy(str1,str2,len)
表示将str2的前len个字符赋给str1

实例:

#include <stdio.h>
#include <string.h>
int main()
{
    char str1[] = "I Love Study";
    char str2[20];
    strncpy(str2,str1,6);
    printf("%s\n",str2);
    //输出结果为I Love
    return 0;
}

4.strcmp

函数名:strcmp
功能:比较两个字符串的大小,按ASCII值大小相比较
说明:strcmp(str1,str2) 前者大则值为1,相同则为0,后者大则为-1

实例:

#include <stdio.h>
#include <string.h>
int main()
{
    char str1[] = "I love Acm";
    char str2[] = "I LOVE ACM";
    if(!strcmp(str1,str2))
        printf("they are equal\n");
    else if(strcmp(str1,str2)==1)
        printf("str1 is greater than str2\n");
    else
        printf("str1 is lower than str2\n");
    //输出结果为 str1 is greater than str2
    return 0;
}

5.stricmp

函数名:stricmp
功能:比较两个字符串忽略大小写后的大小
说明:stricmp(str1,str2),前者大则值为1,相同则为0,后者大则为-1

实例:

#include <stdio.h>
#include <string.h>
int main()
{
    char str1[] = "I love Study";
    char str2[] = "I LOVE STUDY";
    if(!stricmp(str1,str2))
        printf("they are equal\n");
    else if(stricmp(str1,str2)==1)
        printf("str1 is greater than str2\n");
    else
        printf("str1 is lower than str2\n");
    //输出结果为 they are equal
    return 0;
}

6.strcat

函数名:strcat
功能:将两个字符串合为一
说明:strcat(str1, str2)把str1(包括“\0”)复制到str2后面(删除str2原来末尾的“\0”)

实例:

#include <stdio.h>
#include <string.h>
int main()
{
    char str1[20] = "I love";
    char str2[] = "Study";
    strcat(str1," ");
    strcat(str1,str2);
    printf("%s\n",str1);
    //str1和str2所指内存区域不可以重叠且str1必须有足够的空间来容纳str2的字符串。
    return 0;
}

7.strchr

函数名:strchr
功能:查询某个字符在某字符串中首次出现的位置
说明:strchr(str,’c’)表示’c’字符在str首次出现的位置

实例:

#include <stdio.h> 
#include <string.h>
int main()
{
    char str[] = "I love Study";
    printf("%d\n",strchr(str,'o')-str); //输出结果为3 为'o'对应的下标
    return 0;
}

8.strnset

函数名:strnset
功能:将一个字符串前n个字符都设为指定字符
说明:strnset(str,’x’,n)表示将字符串str的前n个字符变成’x’

实例:

#include <stdio.h>
#include <string.h>
int main()
{
    char str[] = "I love Study";
    /*注意不能写 char *str = "I love Study"然后调用strnset函数
    因为这里的str指向的常量区"I love Acm"的地址 是不能再被更改指向内容的*/
    strnset(str,'x',6);
    printf("%s\n",str);
    //输出结果为 xxxxxx Study
    return 0;
}

9.strtod

函数名:strtod
功能:将字符串转化为浮点数
说明:strtod(str,&endptr)将字符串str转化成浮点数并将因条件不合导致结束的指针由endptr传回

实例:

/*strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。
若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。
参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。 */
#include <stdio.h>
#include <string.h>
int main()
{
    char *endptr;
    char a[] = "12345.6789";
    char b[] = "1234.567qwer";
    char c[] = "-232.23e4";
    printf("a=%lf\n",strtod(a,NULL));
    printf("b=%lf\n",strtod(b,&endptr));
    printf("endptr=%s\n",endptr);
    printf("c=%lf\n",strtod(c,NULL));
    /*输出结果为
    a=12345.678900
    b=1234.567000
    endptr=qwer
    c=-2322300.000000 */
    return 0;
}

10.strupr

函数名:strupr
功能:将字符串中小写字母变成大写字母
说明:strupr(str)表示指向小写字母变大写字母后的str的指针

实例:

/*strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号
才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。
若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。
参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。 */

#include <stdio.h>
#include <string.h>
int main()
{
    char str1[] = "abcdefg";
    printf("%s\n",strupr(str1));
    //输出结果为 ABCDEFG
    return 0;
}
  • 121
    点赞
  • 864
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值