📅  最后修改于: 2023-12-03 14:39:39.845000             🧑  作者: Mango
在 C 编程语言中,substring
是指从给定的字符串中提取一部分字符串。C 语言并没有内置的子字符串函数,但开发人员可以使用一些库函数来提取子字符串。本文将介绍几种不同的方法来在 C 语言中获取子字符串。
strncpy()
C 语言中的 strncpy()
函数可以用于提取字符串的子字符串。此函数将源字符串的指定长度复制到目标字符串中。可以使用以下代码来提取一个字符串的子字符串:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello World";
char str2[6];
strncpy(str2, str1+6, 5);
printf("Substring is: %s\n", str2);
return 0;
}
在上面的代码中,我们从 str1
的第 6 个元素开始复制 5 个字符,并将其存储在 str2
中。str1+6
等同于 &str1[6]
,因为在 C 语言中,数组变量的名称是其第一个元素的地址。
此方法的一个限制是无法处理以 null 结尾的字符串,因为 strncpy()
不会自动添加 null 终止符。要解决这个问题,可以在复制的子字符串末尾手动添加 null 终止符。
另一种提取 C 语言中子字符串的方法是使用指针运算。可以使用以下代码来提取一个字符串的子字符串:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello World";
char *str2 = str1 + 6;
char *str3 = str1 + 11;
*str3 = '\0';
printf("Substring is: %s\n", str2);
return 0;
}
在上面的代码中,我们使用指针运算将 str2
指向 str1
的第 6 个字符。然后,我们将 str3
指向 str1
的第 11 个字符,并将其替换为 null 终止符。这样,只需打印 str2
就可以获得源字符串的子字符串。
strtok()
C 语言中的 strtok()
函数可以将字符串分割为多个子字符串。可以使用以下代码来提取一个字符串的子字符串:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello World";
char *token;
token = strtok(str1+6, " ");
printf("Substring is: %s\n", token);
return 0;
}
在上面的代码中,我们从 str1
的第 6 个元素开始提取子字符串。然后,我们使用 strtok()
将字符串分割为多个子字符串,并将第一个子字符串存储在 token
中。最后,我们打印 token
来获取子字符串。
无论你使用哪种方法来提取 C 语言中的子字符串,都要注意以下事项:
strtok()
分割字符串,则需要指定分隔符。本文介绍了几种不同的方法来在 C 语言中提取子字符串。通过这些方法,你可以轻松地修改现有的代码或编写新代码来处理字符串。