puts源码 输出调用时传来的字符串
void puts(char *p){
while(*p != '\0'){
putchar(*p);
p++;
}
putchar('\n');
}
gets源码 扫描用户从键盘输入的字符序列
void gets(char *p){
if(p == NULL){
return;
}
while( *p = getchar() ){
if(*p == '\n'){
return;
}
else{
p++;
}
}
}
参数: 指针p
将用户从键盘输入的字符序列存放到指定的字符串中
strlen源码 计算字符串有效字符的长度
int strlen(char *p){
int cnt = 0;
while(*p != '\0'){
cnt++;
p++;
}
return cnt;
}
参数:指针p
利用p遍历字符串时,cnt++计数
返回值:cnt(int)
memset源码 初始化数组
void memset(char *p, char c, int size){
while(size--){
*p = c;
p++;
size--;
}
*p = '\0'; //补上结束标志,否则尾巴不是很干净,有乱码
}
strcpyt 源码
// 1
char *strcpy(char *dest, char *str){
if(dest == NULL || str == NULL){
return NULL;
}
while(*str != '\0'){
*dest = *str;
dest++;
str++;
}
*dest = '\0';
return dest;
}
// 2
void strcpy(char *dest, char *str){
if(dest == NULL || str == NULL){
return;
}
while(*str != '\0'){
*dest = *str;
dest++;
str++;
}
*dest = '\0';
}
参数:
dest—源字符串
str------目标字符串
作用:将目标字符str串拷到源字符dest串中
返回值:源字符串dest地址
其实返回值是指针型的我个人觉得再调用的时候dest返回的地址
是字符串的串尾地址,但再编译器上还是可以run,可能是我对
于指针的理解还是不是很到位,第2个代码我认为是正确的,实际
也是可以run的
strncpy源码
char *myStrncpy(char *dest, char *str, int n){
if(dest == NULL || str == NULL){
return NULL;
}
while(*str != '\0' && n>0){
*dest = *str;
dest++;
str++;
n--;
}
*dest = '\0';
return dest;
}
参数:
dest—源字符串
str------目标字符串
n--------指定所要拷贝的目标字符串的长度
作用:将目标字符串中str从头开始拷贝n个长度的字符到源字符dest中
返回值:源字符串dest地址
strcpy源码
void strcat(char *dest, char *str){
if(dest == NULL || str == NULL){
return;
}
while(*dest != '\0'){
dest++;
}
while(*str != '\0'){
*dest = *str;
dest++;
str++;
}
*dest = '\0';
}
参数:
dest—源字符串
str------目标字符串
作用:将目标字符串中str连接到到源字符dest后
strcmp源码
int strcmp(char *dest, char *str){
while( *dest == *str){
if(*dest == '\0' && *str == '\0')
return 0;
dest++;
str++;
}
if(*dest > *str)
return 1;
if(*dest < *str)
return -1;
}
本人处于初学c阶段,也是看了好几篇博文,但是都不尽人意,花了一点时间,琢磨了一下,总算是写出来了,经调试没有错误,不做过多解释,只有自己花心思了才会真正太高,我写完后真的觉得自己又对c的认识又进步了一点。
师从抖音上官可编程,我编程路上的启蒙老师