在C语言中,字符串是由字符数组表示的,其中每个元素都是一个字符。字符串以空字符('\0')结尾,以便在处理字符串时可以确定字符串的结束位置。

在C中,可以使用以下方式声明和初始化字符串:

char str[] = "Hello World";

这里,str是一个字符数组,它包含了字符串"Hello World"的所有字符,包括结尾的空字符。但需要注意的是双引号引起来的一串字符串,单引号引起来的叫字符,结束标志是 \0 转义字符,计算字符串长度时,其是结束标志,不算做字符串内容。

C语言提供了一组函数用于处理字符串,这些函数包含在string.h头文件中。以下是一些常用的字符串函数:

  • strlen():用于获取字符串的长度。
  • strcpy():用于将一个字符串复制到另一个字符串中。
  • strcat():用于将两个字符串连接起来。
  • strcmp():用于比较两个字符串是否相等。

除了这些函数之外,C语言还提供了一些处理字符串的操作符,例如+和+=,可以用于连接两个字符串。

在这里详细说明一下strlen()的用法及注意事项:

strlen() 函数是 C 语言中的一个字符串处理函数,用于计算字符串的长度。它的原型定义在 string.h 头文件中:

size_t strlen(const char *str);

其中,str 是指向要计算长度的字符串的指针,返回值是一个无符号整数类型 size_t,表示字符串的长度。

该函数会从参数所指向的字符串的开头开始扫描,直到遇到第一个空字符(\0)为止,计算出字符串的长度,并返回这个长度值。

举一个简单例子:

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

int main() {
    char str[] = "Hello, world!";
    printf("The length of the string \"%s\" is %zu.\n", str, strlen(str));
    return 0;
}

//输出结果为: The length of the string "Hello, world!" is 13.

输出结果为:

 The length of the string "Hello, world!" is 13.

需要注意的是,strlen() 函数只能计算以空字符结尾的字符串的长度,如果传入的参数不是以空字符结尾的字符串,strlen()函数则会一直向后计数直至遇到一个(\0)为止,此时输出为随机数,此外,由于 strlen()函数返回的是一个无符号整数类型,因此在进行比较时应当使用无符号整数类型进行比较。

举个例子:

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

	char arr1[] = "abc";

	char arr2[] = { 'a', 'b', 'c' };

	printf("%d\n", strlen(arr1));

	printf("%d", strlen(arr2));

	return 0;

}

其输出结果为:

C语言中字符串与strlen()函数的基本用法_strlen()的常见问题

要避免这种情况其实也很简单,只需要在字符数组arr2的元素结尾在上一个0即可。

C语言中字符串与strlen()函数的基本用法_字符串_02

我们现在使用printf()函数打印看一下结果

C语言中字符串与strlen()函数的基本用法_字符数组_03

现在arr1与arr2的打印结果一样并且字符串的长度也相同,由此可知在字符数组arr2中的零相当于arr1中的\0标识符,功能相同,当然,将0也用单引号括起来的话,其也相当于一个字符。