字符串操作函数
1.strlen()函数
strlen()函数用于计算字符串的长度,返回字符串的字符数。
语法:
size_t strlen(const char *str)
参数:
- str – 要计算长度的字符串。
返回值:
- 字符串的字符数。
示例:
#include <stdio.h>
#include <string.h>
int main ()
{
char str[50]="hello world";
len = strlen(str);
printf("|%s| 的长度是 |%d|\n", str, len);
return 0;
}
让我们编译并运行上面的程序,这将产生以下结果:
|hello world| 的长度是 |11|
长度为11,因为它包含了11个字符。
自实现
int myStrlen(const char * str)
{
int len = 0;
while(*str++)
len++;
return len;
}
2.strcpy()函数
strcpy()函数用于复制一个字符串到另一个字符串。
语法:
char *strcpy(char *dest, const char *src)
参数:
- dest – 目标字符串。
- src – 源字符串。
返回值:
- 目标字符串。
示例:
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[50];
char str2[50]="hello";
strcpy(str1, str2);
printf("|%s| 复制到 |%s|\n", str1, str2);
return 0;
}
输出:
|hello| 复制到 |hello|
自实现
char *myStrcpy(char *dst, const char * src)
{
char *d = dst;
while(*dst++ = *src++);
return d;
}
3.strncpy()函数
函数 char *strncpy(char *dest, const char *src, size_t n)
把 src 所指向的字符串复制到 dest,最多复制 n 个字符。
当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。
语法:
char *strncpy(char *dest, const char *src, size_t n)
参数:
- dest – 目标字符串。
- src – 源字符串。
- n – 要复制的字符数。
返回值:
- 目标字符串。
- 如果 n 为 0,则返回 NULL。
示例:
#include <stdio.h>
#include <string.h>
int main ()
{
char str1[50];
char str2[50]="hello world";
strncpy(str1, str2, 5);
printf("|%s| --- |%s|\n", str1, str2);
return 0;
}
输出:
|hello| --- |hello world|
自实现
char *myStrncpy(char *dst, const char *src, int n)
{
char *d = dst;
while(n-- && (*dst++ = *src++));
while(n-- > 0)
*dst++ = '\0';
return d;
}
4.strcat()函数
函数 char *strcat(char *dest, const char *src)
把 src 所指向的字符串追加到 dest 后面。
语法:
char *strcat(char *dest, const char *src)
参数:
- dest – 目标字符串。
- src – 源字符串。
返回值:
- 目标字符串。
示例:
#include <stdio.h>
#include <string.h>
int main ()
{