轻松入门 实战应用 技术交流群387220290
} for (; *from!='\\0'; from++, to++) { *to = *from; } *to = '\\0'; } //字符串逆序 int main() { //char p[1024] ={0}; char *p ={0}; p = NULL; char to[100]; copy_str21(p, to); C语言中没有你不知道的,只有你不会调 Java语言中没有你不会调的,只有你不知道 不断修改内存指针变量 02越界
越界 语法级别的越界 char buf[3] = \; 03不断修改指针变量的值
越界 轻松入门 实战应用 技术交流群387220290
void copy_str_err(char *from, char *to) { for (; *from!='\\0'; from++, to++) { *to = *from; } *to = '\\0'; printf(\, to); printf(\, from); } 04你向外面传递什么
1、临时str3内存空间 // char *str_cnct(x,y) /*简化算法*/ // char *x,*y; char *str_cnct(char *x, char* y) /*简化算法*/ { char str3[80]; char *z=str3; /*指针z指向数组str3*/ while(*z++=*x++); z--; /*去掉串尾结束标志*/ 轻松入门 实战应用 技术交流群387220290
while(*z++=*y++); z=str3; /*将str3地址赋给指针变量z*/ return(z); } 2、经验要学习 while(*z++=*x++); z--; /*去掉串尾结束标志*/ char *str_cnct(char *x, char* y) /*简化算法*/ { char * str3= (char *)malloc(80) char *z=str3; /*指针z指向数组str3*/ while(*z++=*x++); z--; /*去掉串尾结束标志*/ while(*z++=*y++); z=str3; /*将str3地址赋给指针变量z*/ return(z); } char *str_cnct(char *x, char* y) /*简化算法*/ { If (x == NULL) { Return NULL; } char * str3= (char *)malloc(80) char *z=str3; /*指针z指向数组str3*/ while(*z++=*x++); z--; /*去掉串尾结束标志*/ while(*z++=*y++); z=str3; /*将str3地址赋给指针变量z*/ note: return(z); } Main () { Char *p = str_cnct(“abcd”, “ddeee”); If (p != NULL) {Free(p) ;p = NULL}//yezhizhen } int getKeyByValude(char *keyvaluebuf, char *keybuf, char *valuebuf, int * valuebuflen) { int result = 0; char *getbuf = new char[100]; 轻松入门 实战应用 技术交流群387220290
memset(getbuf, 0, sizeof(getbuf)); char *trimbuf = new char[100]; memset(trimbuf, 0, sizeof(trimbuf)); int destlen = strlen(keyvaluebuf); if (keybuf == NULL || keyvaluebuf == NULL || valuebuf == NULL/* || valuebuflen == NULL*/) { result = -1; return result; } if (strstr(keyvaluebuf, keybuf) == NULL) { result = -1; return result; } else { for (int i = 0; i < destlen; i++) { if (*keyvaluebuf == '=') { *keyvaluebuf++; break; } keyvaluebuf++; } while(*keyvaluebuf != '\\0') { *valuebuf = *keyvaluebuf; valuebuf++; keyvaluebuf++; } *valuebuf = '\\0'; } int len = strlen(valuebuf); return result; } //char *p = \字符串中\出现的次数。 轻松入门 实战应用 技术交流群387220290
//要求你 自己写一个函数接口,并且写出测试用例。 //完成功能为:求出“abcd”字串出现的次数 //输入: int getSubCount(char *str, char *substr, int * mycount) { int ret = 0; char *p = str; char *sub = substr; int count = 0; if (str==NULL || substr==NULL || mycount == NULL) { ret = -1; return ret; } //char *p = \ //char *p2 = NULL; //p2 = p; do { p = strstr(p, sub); if (p!= NULL) { count++; } //++后缀操作符优先级高,所以先执行*p操作 然后地址++ *mycount++; p = p + strlen(sub); } else { break; } } while (*p != '\\0'); //printf(\ //mycount是实参的地址 *(实参的地址) *mycount = count; return ret;