← 返回首页
C语言系列教程(十)
发表时间:2021-03-19 18:15:45
字符串

字符串的本质是字符数组,通常使用char* 类定义字符串变量。

char*是字符指针数据类型,它的本质是个指针,也就是地址,它指向了一个char类型(字符类型)的内存单元。我们在后面的指针单元会详细讲解。

1.如何定义字符串变量

实例:

#include <stdio.h>

int main(){

    char* str1 = "I love you china!";
    char* str2 = "hello,一起学习C语言吧!";

    printf("%s\n",str1);
    printf("%s\n",str2);

    return 0;
}

当然,也可以使用char[]方式定义字符串变量。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int main(){

    char str1[50] = "I love you china!";
    char str2[50] = "hello,一起学习C语言吧!";

    printf("%s\n",str1);
    printf("%s\n",str2);

    return 0;
}

运行结果:

I love you china!
hello,一起学习C语言吧!

2.字符串长度

在C语言中,我们使用string.h头文件中的 strlen() 函数来求字符串的长度。 strlen() 函数从字符串的开头位置依次向后计数,直到遇见\0,然后返回计时器的值。最终统计的字符串长度不包括\0。

注意:strlen()返回的是字节数量而不是字符数量。这一点和其它高级语言(Java等)有很大的区别!

例如:

#include <stdio.h>
#include <string.h>
int main(){

    char* str1 = "I love you china!";
    char* str2 = "hello,一起学习C语言吧!";

    printf("%s\n",str1);
    printf("%s\n",str2);

    printf("str1 length is :%d\n",strlen(str1));
    printf("str2 length is :%d\n",strlen(str2));
    return 0;
}

运行结果:

I love you china!
hello,一起学习C语言吧!
str1 length is :17
str2 length is :23

这里一个汉字占据两个字节,所以str2长度是23个字节。