欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言基础之字符串

程序员文章站 2022-07-14 08:06:00
...

    字符数组

char word[] = { 'H','e','l','l','o','!' };
word[0] H
word[1] e
word[2] l
word[3] l
word[4] o
word[5] !

    ↑这不是C语言的字符串,因为不能用字符串的方式做计算

    字符串

char word[] = { 'H','e','l','l','o','!','\0' };
word[0] H
word[1] e
word[2] l
word[3] l
word[4] o
word[5] !
word[6] \0

    ▲ 以0(整数0)结尾的一串字符

        ◆ 0或'\0'是一样的,但是和'0'不同

    ▲ 0标志字符串的结束,但它不是字符串的一部分

        ◆ 计算字符串长度的时候不包含这个0

    ▲ 字符串以数组的形式存在,以数组或指针的形式访问

        ◆ 更多的是以指针的形式

    ▲ string.h里有很多处理字符串的函数

    字符串变量

char* str = "Hello";
char word[] = "Hello";
char line[10] = "Hello";

    字符串常量

    ▲ "Hello"

    ▲ "Hello"会被编译器变成一个字符数组放在某处,这个数组的长度是6,结尾还有表示结束的0

    ▲ 两个相邻的字符串常量会被自动连接起来

    【例】

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	printf("你好"
	       "我好"
	       "大家好");
	return 0;
}

程序的结果如下图所示,说明编译器将三个字符串连接起来,“拼合”成一个大的字符串,然后传递给了printf()函数:

C语言基础之字符串

如果要使程序代码显得更加“苗条”的风格,除了可以采用上述方案外,还可以这样写:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	printf("你好\
我好");
	return 0;
}

这样在前一行加上一个反斜杠“\”,也可以实现代码的换行而输入内容不换行,但要注意下一行的内容必须顶格书写而不能有缩进,效果如下图所示:

C语言基础之字符串

    【总结】

    ▲ C语言的字符串是以字符数组的形态存在的

        ◆ 不能用运算符对字符串做运算

        ◆ 通过数组的方式可以遍历字符串

    ▲ 唯一特殊的地方是字符串字面量可以用来初始化字符数组

    ▲ 以及标准库提供了一系列字符串函数

相关标签: c语言