一、strcpy与strncpy的不同之处
这两个函数都有拷贝字符串的功能
函数原型:
char *strcpy( char *str1, const char *str2);//str1是要复制到的字符串,str2是被复制的字符串
char *strncpy( char *str1, const char *str2, size_t count );//这里多了一个元素count
而这个count就是这两个函数的不同之处
strncpy的作用就是讲字符串str2中的前count个元素拷贝给str1
二、strcpy与strncpy的实例
strcpy代码块:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[15] = {0};
char str2[15] = {1,2,3,4};
strcpy(str1,str2);
puts(str1);
return 0;
}
运行结果
注:运行正确,因为字符串里存的是ASCI码,puts输出的是字符,所以是ASCI码前4个图形
strncpy代码块:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[15] = {0};
char str2[15] = {1,2,3,4};
strncpy(str1,str2,1);
puts(str1);
return 0;
}
运行结果
三、strchr
函数名称: strchr
函数原型: char*
函数功能: 找出str指向的字符串中第一次出现字符ch的位置
函数返回: 返回指向该位置的指针,如找不到,则返回空指针
参数说明: str-待搜索的字符串,ch-查找的字符
所属文件: <string.h>
strchr代码块
#include<string.h>
#include<stdio.h>
int main()
{
char string[50];//定义一个字符串数组string
char *ptr;
char c= 'h';//定义指针变量ptr,和字符类型的变量c并赋值为'h';
strcpy(string,"welcome to haohaosong's blog");
puts(string);
ptr=strchr(string,c);//将从字符串数组里找出的'h'返回给ptr
if(ptr)//判断是否有值
printf( "这个字符 '%c' 所在的位置: %d\n ",c,ptr-string);
else
printf( "没有找到该字符\n ");
return 0;
}
运行结果