C语言中字符串的基本操作

C语言中字符串的基本操作

用惯了c#和JavaScript,反过头来再学习c语言的字符串操作,真是操碎了心。
这大概是高级语言和低级语言的区别吧。

  • 连接字符串
  • 复制字符串
  • 截取字符串
  • 查找字符串
  • 字符串长度
  • 字符串中大小写转换
  • 字符串是否相等

连接字符串
strcat(s1, s2);

复制字符串

#include <stdio.h>
#include <string.h>
int main()
{
    char stra[] = "abcd";
    char strb[] = "hjklmpei";
    printf("stra: %s\t&stra:%d \n", stra, &stra);
    printf("strb: %s\t &strb:%d \n", strb, &strb);
    printf("-------\n");
    strcpy(stra, strb);
    printf("stra: %s\t&stra:%d \n", stra, &stra);
    printf("strb: %s\t &strb:%d \n", strb, &strb);
}
运行结果:
stra: abcd      &stra:6422315
strb: hjklmpei   &strb:6422306
-------
stra: hjklmpei  &stra:6422315
strb: hjklmpei   &strb:6422306

strcpy(p, p1) 复制字符串
strncpy(p, p1, n) 复制指定长度字符串 复制字符串的变种,从

截取字符串
截取字符串可以看作是复制字符串的变种,指定了起始位置m和截取长度n

 strncpy(stra, strb+m ,n);//起始位置m和截取长度n,还要判断m、n是否越界
 stra[n]=0;//给数组结尾加个NULL,否则数组可能没有结束标记

查找字符串

	char strb[] = "hjklmpei";
    printf("strb: %s\t &strb:%#X \n", strb, &strb);
    printf("-------\n");
    char *p=strstr(strb,"jk");
    printf("p: %#p",p);
    //运行结果
strb: hjklmpei   &strb:0X61FF21
-------
p: 0X0061FF22

strstr()是查找字符串的位置,strchr()是查找字符的位置,函数名比较相近。

字符串长度
strlen()

字符串中大小写转换

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
    char stra[] = "a";
    char strb[] = "hjklmpei";
    printf("stra: %s\t&stra:%#X \n", stra, &stra);
    printf("strb: %s\t &strb:%#X \n", strb, &strb);
    printf("-------\n");
    for(int i=0;i<strlen(strb);i++){
        strb[i]=toupper(strb[i]);//利用c封装的字符大小写转换函数toupper/tolower
    }
    //printf("stra: %s\t &stra:%d \n", stra, &stra);
    printf("strb: %s\t &strb:%#X \n", strb, &strb);
}

字符串是否相等
strcmp(s1, s2);

发布了14 篇原创文章 · 获赞 1 · 访问量 6691

猜你喜欢

转载自blog.csdn.net/weixin_43833645/article/details/90728804