strcat strcpy strlen


 1 char * strcat(char * dest, const char * src) {
2 assert(dest != NULL && src != NULL);
3 char * p = dest;
4 while (*p)
5 p++;
6 while (*p++ = *src++);
7 return dest;
8 }
9
10 int strlen(const char * src) {
11 int count = 0;
12 while (*src++)
13 count++;
14 return count;
15 }
16
17 char * strcpy(char * dest, const char * src) {
18 assert(dest != NULL && src != NULL);
19 char * p = dest;
20 while (*p++ = *src++);
21 return dest;
22 }

其中要注意:


1 while(*p++); // P最后指向‘\0’的下一位置
2 while (*p) p++; // p最后指向‘\0‘

时间: 2024-08-19 14:27:00

strcat strcpy strlen的相关文章

strlen,strcat,strcpy,strcmp的实现

自己设计实现strlen,strcat,strcpy,strcmp. int my_strlen(char *a) { int count=0; while(*a) { a++; count++; } return count; } char* my_strcat(char *a,char *b) { char *c; c=a; while(*a) { a++; } while(*b) { *a++=*b++; } return c; } char* my_strcpy(char *c,char

strlen strcat strcpy strcmp 自己实现

strlen strcat strcpy strcmp 自己实现 strlen include <stdio.h> #include <string.h> #include <assert.h> size_t my_strlen(const char* str){ assert(str != NULL); const char *tmp = str; size_t count = 0; while(*tmp++ != '\0'){ count++; } return c

笔试算法题(04):实现 string &amp; memcpy &amp; strcpy &amp; strlen

出题:请实现给定String的类定义: 分析:注意检查标准类构造注意事项: 解题: 1 #include <stdio.h> 2 #include <string.h> 3 /** 4 * 检查是否需要构造函数 5 * 检查是否需要无参构造函数 6 * 检查是否需要成员变量(函数)私有 7 * 检查是否需要在构造函数预初始化成员变量 8 * 检查是否需要析构函数 9 * 检查是否需要虚拟析构函数 10 * 检查是否需要复制构造函数(参数为const) 11 * 检查是否需要赋值重载

strlen sizeof strcat strcpy区别

strlen(p): 能计算出p指向字符串的长度(以当前p的位置开始),不包含终止字符'\0': p可以声明为char* p或者char p[],这两种形式strlen均能正确计算. sizeof(p): sizeof是一个操作符,非函数,其值在编译期确定,因此当p声明为某一类型指针时,sizeof在编译时并不能确定指向内容的大小,故返回的是指针类型本身的大小: 当p声明为某一类型数组时,sizeof在编译时即可确定指向内容的大小,故返回的是数组所占容量: strcat(p1,p2)和strcp

strcat strcpy strcmp strlwr strlen的简单用法

#include<stdio.h>int main(){ char str1[20] = { "hello" }; char str2[] = { "bit" }; printf("%s", strcat(str1, str2)); system("pause"); return 0;} #include<stdio.h>int main(){ char str1[20]; char str2[] =

strcpy,strlen, strcat, strcmp函数,strlen函数和sizeof的区别

//计算字符串实际长度        //strlen()函数:当遇到'\0'时,计算结束,'\0'不计入长度之内,如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到'\0'停止//    char string[] = "I Love You!";//    unsigned long len = strlen(string);//    printf("len = %lu\n", len);  //11//    //    stri

c语言实现完美strcpy,strlen,strcmp,strcat

相信不少人面试的时候,会遇到面试官让你写出strcmp, strlen, strcpy,strcat等函数,下面给出比较完美的实现,自行把握里面一些关键的点,例如参数的判断,const参数,指针操作等等. //strcpy函数: char *strcpy(char *strDest, const char *strSrc) { if (strDest == NULL || strSrc == NULL) return NULL; if (strDest == strSrc) return str

自定义方法实现strcpy,strlen, strcat, strcmp函数,了解及实现原理

unsigned long myStrlen(char string[]) {     unsigned long length = 0;          while (string[length] != '\0') {         length++;     }          return length; } void myStrcpy(char string1[], char string2[]) {     int i = 0;     while (string2[i] !=

strcat strcpy 使用出现的问题汇总

事例1(转) 在程序中多次用的strcat函数,但是有时候编译通过,但是执行时却出现了错误.为了进一步了解strcat函数的使用,我首先写了这样的一个测试程序: main(){       char *Temp=(char *)malloc(sizeof(char)*200);       Temp="strcat";       char *Append=" a test program!";       strcat(Temp,Append);       pr