字符函数和字符串函数(三)
一、strncpy函数的使用
1.1.strncpy函数
char * strncpy ( char * destination, const char * source, size_t num );
1.2.strncpy函数的作用
从字符串复制字符。将源字符串的前num个字符复制到目标位置。如果在复制num个字符之前找到源C字符串的结束(由空字符表示),则目标将用零填充,直到总共写入num个字符。
如果源字符串的长度大于num,则不会在目标末尾隐式追加空字符。因此,在这种情况下,目标不应被视为以空字符结尾的C字符串(将其视为以空字符结尾的字符串会导致溢出)。
1.3.strncpy函数的使用

代码如下(可自行测试):
#include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "To be or not to be";
char str2[40];
char str3[40];
strncpy(str2, str1, sizeof(str2));
strncpy(str3, str2, 5);
str3[5] = '\0';
puts(str1);
puts(str2);
puts(str3);
return 0;
}
二、strncat函数的使用
2.1.strncat函数
char * strncat ( char * destination, const char * source, size_t num );
2.2.strncat函数的作用
从字符串追加字符 将源字符串的前num个字符追加到目标中,并加上一个终止空字符。
2.3.strncat函数的使用

注:执行 strncat(s1, s2, 6): 从 s2 取前 6 个字符:"I'm a "(注意空格也算一个字符) 拼接到 s1 后面: 新的 s1 内容变为:"I'm a studentI'm a \0" 实际上是:"I'm a studentI'm a " + \0
代码如下(可自行测试):
#include<stdio.h>
#include<string.h>
int main() {
char s1[20] = "I'm a student";
char s2[20] = "I'm a doctor";
strncat(s1, s2, 6);
puts(s1);
puts(s2);
return 0;
}
三、strncmp函数的使用
3.1.strncmp函数
int strncmp ( const char * str1, const char * str2, size_t num );
3.2.strncmp函数的作用
比较两个字符串的字符 比较C字符串str1和C字符串str2的前num个字符。该函数从每个字符串的第一个字符开始比较。如果它们相等,则继续比较后续的字符对,直到字符不同、直到遇到终止空字符,或者直到两个字符串中的num个字符都匹配,以先发生的情况为准。

3.3.strncmp函数的使用

代码如下(可自行测试):
#include<stdio.h>
#include<string.h>
int main() {
char s1[20] = "I'm a student";
char s2[20] = "I'm a doctor";
int r = strncmp(s1, s2, 10);
if (r> 0) {
printf("1\n");
}
else if(r< 0){
printf("-1\n");
}
else {
printf("0\n");
}
}
更多推荐



所有评论(0)