对C语言字符串函数的复习笔记

来源:互联网 发布:java方法重写快捷键 编辑:程序博客网 时间:2024/06/05 06:54

0. 字符串的一些散碎知识点

  • 字符串常量C语言会自动在末尾后补上’\0’
  • strlen()函数计算字符数组大小的时候不会计算’\0’*
int main (){    char str1[6]="admin";//数组长度为6 admin后还有一个结束符'\0' 也占用一个空间     printf("str1:%d",strlen(str1));    //输出结果是str1:6 但是并不表示str1数组的长度是6 因为strlen不会计算'\0'所占的空间     return 0; } 
  • 0.3 字符串处理函数的返回值是一个指针类型也就是str1的地址
int main (){    char str1[30];//源字符串     char str2[15]="I\' Here :)"; //目标字符串    char *p_str;    //函数返回值是一个指针类型     p_str = strcpy(str1,str2); //     printf("strcpy函数返回的指针地址:%0x str1地址:%0x\n",p_str,&str1);     puts(p_str);    puts(str1);     return 0; }

strcat()函数

# include <stdio.h># include <stdlib.h># include <string.h>/*stract (str1,str2);功能:将str2 拼接在str1字符串的后面 并且覆盖str1后的 '\0' */int main (){    char str1[20] = "fuck ";    char str2[10];    scanf("%s",str2);    strcat(str1,str2);     printf("%s",str1);    printf("\nLength:%d",strlen(str1));    return 0; } 

在对字符数组进行赋值的时候,不可以先声明后通过”=”号来赋值
错误演示:

char str1[10];str1[10] = "string";

2. strcpy函数

strcpy()在复制字符串的时候会将字符串的’\0’也复制过去
char str1[6]=”admin”
char str2[5]=root@kali”

# include <stdio.h># include <string.h>/*strcpy(str1,str2)作用:*/int main (){    char str1[30];    char str2[10];    //用strcpy函数对已经声明过的字符数组赋值    strcpy(str1,"我是str1");     puts(str1);    //将str1中的内容赋值给str2     strcpy(str2,str1);    puts(str2);    return 0; } 
原创粉丝点击