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

版权声明:人类的最大弱点之一是自命不凡的幻想。 https://blog.csdn.net/claysystem/article/details/78728113

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;
 } 

猜你喜欢

转载自blog.csdn.net/claysystem/article/details/78728113