#include <stdio.h> size_t strlen(char const *string); main() { char *a="hello"; int b; b=strlen(a); printf("%d\n",b); } size_t strlen(char const *string) { int length; for(length=0;*string++!=‘\0‘; ) length+=1; return length; } 2. 字符查找 #include <stdio.h> #include <string.h> main() { char string[20]="Hello there,honey."; char *ans; int a; ans=strchr(string,‘h‘); *ans=‘W‘; printf("%c\n",*ans); } 3. 字符的大小写转换 #include <stdio.h> #include <ctype.h> main(){ char s[] = "aBcDeFgH12345;!#$"; int i; printf("before toupper() : %s\n", s); for(i = 0; i < sizeof(s); i++) s[i] = toupper(s[i]); printf("after toupper() : %s\n", s); } 4. 字符复制 #include <stdio.h> #include <string.h> main() { char message[]="Original message"; strcpy(message,"hello Jim"); strcat(message,", how are you?"); printf("%s\n",message); } strcpy和memcpy主要有以下3方面的区别。 1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。 2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。 3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy 5.结构体 #include <stdio.h> typedef struct{ int a; short b[2]; } Ex2; typedef struct EX{ int a; char b[3]; Ex2 c; struct EX *d; } Ex; main() { Ex x={10,"Hi",{5,{-1,25}},0}; Ex *px=&x; int *pi; pi=&px->a; printf("%d %d\n",px->a,*pi); //10 10 printf("%ld\n",sizeof(Ex)); //24 printf("%ld\n",sizeof(pi)); //8 }
时间: 2024-10-07 21:22:05