C
语言 截取字符串 ⭐️
方法 1:使用 strncpy
函数 🍭
strncpy
是C
标准库中的一个函数,用于从源字符串中复制指定长度的字符到目标字符串中。【详情请查看我的另一篇文章】
示例代码:🌰
#include <stdio.h>
#include <string.h>int main() {char src[] = "Hello, World!";char dest[20]; // 目标字符串int start = 7; // 起始位置(下标从0开始)int length = 5; // 截取长度// 使用 strncpy 截取字符串strncpy(dest, src + start, length);dest[length] = '\0'; // 手动添加字符串结束符printf("截取的字符串: %s\n", dest); // 输出: Worldreturn 0;
}
说明:📚
src + start
:从源字符串的第start
个字符开始(下标从0
开始)。length
:截取的字符长度。dest[length] = '\0'
:手动添加字符串结束符,确保目标字符串正确终止。
方法 2:手动截取字符串 🍭
如果不使用库函数,可以通过循环手动截取字符串。
示例代码:🌰
#include <stdio.h>void substring(char *dest, const char *src, int start, int length) {int i;for (i = 0; i < length && src[start + i] != '\0'; i++) {dest[i] = src[start + i];}dest[i] = '\0'; // 添加字符串结束符
}int main() {char src[] = "Hello, World!";char dest[20]; // 目标字符串int start = 7; // 起始位置(下标从0开始)int length = 5; // 截取长度substring(dest, src, start, length);printf("截取的字符串: %s\n", dest); // 输出: Worldreturn 0;
}
说明:📚
- 通过循环从源字符串中复制指定范围的字符到目标字符串。
- 手动添加字符串结束符
\0
。
方法 3:使用指针操作 🍭
可以通过指针直接操作字符串的起始位置和长度。
示例代码:🌰
#include <stdio.h>int main() {char src[] = "Hello, World!";int start = 7; // 起始位置(下标从0开始)int length = 5; // 截取长度// 直接操作指针char *sub = src + start;sub[length] = '\0'; // 添加字符串结束符printf("截取的字符串: %s\n", sub); // 输出: Worldreturn 0;
}
说明:📚
src + start
:将指针移动到源字符串的指定位置。sub[length] = '\0'
:在指定位置添加字符串结束符。
注意事项:💥
- 边界检查: 在截取字符串时,确保起始位置和长度不会超出源字符串的范围,否则可能导致未定义行为。
- 内存分配: 如果目标字符串是动态分配的,确保分配足够的内存来存储截取后的字符串和结束符
\0
。 - 字符串结束符: 无论使用哪种方法,都需要确保目标字符串以
\0
结尾。