📅  最后修改于: 2023-12-03 15:13:46.885000             🧑  作者: Mango
在C语言中,字符串是由多个字符组成的一串连续的字符序列,以'\0'(也称为NULL)结尾。字符串并不是C语言的基本数据类型,只是它有一些特殊的用法。
字符串可以用字符数组来表示,例如:
char str[] = "Hello world";
字符串可以用指针来表示,例如:
char *str = "Hello world";
以下介绍一些C语言中常见的字符串操作。
strcpy函数可将一个字符串复制到另一个字符串中。它的原型为:
char* strcpy(char* dest, const char* src);
其中,dest是目标字符串的指针,src是源字符串的指针。例如:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[10] = "Hello";
char str2[10];
strcpy(str2, str1); // 将str1复制到str2中
printf("str2: %s", str2);
return 0;
}
输出:
str2: Hello
strcat函数可将一个字符串连接到另一个字符串末尾。它的原型为:
char* strcat(char* dest, const char* src);
例如:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[10] = "Hello";
char str2[10] = " world";
strcat(str1, str2); // 将str2连接到str1末尾
printf("str1: %s", str1);
return 0;
}
输出:
str1: Hello world
strcmp函数可比较两个字符串是否相等。它的原型为:
int strcmp(const char* str1, const char* str2);
如果str1等于str2,返回0;如果str1小于str2,返回一个负数;如果str1大于str2,返回一个正数。
例如:
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "Hello";
char str2[] = "Hello World";
int result = strcmp(str1, str2); // 比较str1和str2
if (result == 0)
{
printf("str1 equals to str2");
}
else if (result < 0)
{
printf("str1 is less than str2");
}
else
{
printf("str1 is greater than str2");
}
return 0;
}
输出:
str1 is less than str2
strlen函数可返回一个字符串的长度。它的原型为:
size_t strlen(const char* str);
例如:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "Hello world";
size_t len = strlen(str); // 计算字符串长度
printf("Length of the string is: %zu", len);
return 0;
}
输出:
Length of the string is: 11
C语言中的字符串处理是非常重要的,掌握字符串的相关操作函数必不可少。但是需要注意保证字符串的安全性,避免缓冲区溢出漏洞等问题。