写函数,计算字符串长度 #include <stdio.h> unsigned int My_ strlen (char an 函数功能:求一个字符串中字符个数/ unsigned int My_strlen(char aD [int i, number=o for(i=0: a[0=C. [number++ void maino return numbe char str[50]: int n uts(" please input a string"); scanf( %s"S My- strlen(s) printf"strlen(\"%s\")=yd. \n",s,n)
6 写函数,计算字符串长度 ▪ 算法: ▪ 输入字符串 ▪ 计算其中的字符个数 ▪ 从第一个字符数起,只要不到末尾,就加1 ▪ 输出 #include<stdio.h> unsigned int My_strlen(char a[]); /*函数功能:求一个字符串中字符个数*/ unsigned int My_strlen(char a[]) {int i,number=0; for(i=0;a[i]!=0;i++) {number++; } return number; /*直接返回i(不用number)即可*/ } void main() { char str[50]; int n; puts(“please input a string”); scanf("%s",s); n=My_strlen(s); printf("strlen(\" %s\")=%d.\n",s,n); }
写函数,比较字符串大小 include<s↑do.h> int My_strew void main 函数功能: 0 int My strc [char str1 [50], str2[50] [int i; int minus fori=; a[ printf( please input two strings: 找第一个 scanf( %5%s", str1, str2); mInus= return alo if(n>o) My- strcmp(str1, str2) printf" %s>%s. \n", str1, str2) else if(n<O) printf( %5<%5. \n", str1, str2) else printf" %s=%s \n", str1, str2)
7 写函数,比较字符串大小 ▪ 算法: ▪ 输入两个字符串a,b ▪ 比较字符串a,b的大小 ▪ 从第一对字符比起,当两个对应的字符不相等 或者字符串结束时,循环结束,并计算两者之 差,否则继续比较。 ▪ 输出 z h a n g l i n g \0 \0 z h a n g y u \0 \0 \0 \0 #include<stdio.h> int My_strcmp(char a[],char b[]); /*函数功能:比较两个字符串的大小,返回它们的差*/ int My_strcmp(char a[] ,char b[]) {int i; for(i=0; a[i]==b[i]&&(a[i]!=‘\0’||b[i] !=‘\0’);i++); /*找第一个不相等的字符*/ return a[i]-b[i]; /*返回它们的差*/ } void main() {char str1[50],str2[50]; int minus; printf(" please input two strings: "); scanf("%s%s",str1,str2); minus=My_strcmp(str1,str2); if(n>0) printf(" %s>%s.\n",str1,str2); else if(n<0) printf(" %s<%s.\n",str1,str2); else printf(" %s=%s.\n",str1,str2); }
写函数,连接两个字符串鼠 include<s↑do.h> void My_strcat(char a., char b) 函数功能:将两个字符串连接后存在a中 void My_strcat(char a[, char bD) [int i; for(=0:a[="oi+-) 陕指向a串最后一个字符的下一个位置,这句也可直接改为 i=strlen (a): */void maino for(j=0: b]l=[ a[i+j]=bLi]: char str1[100], str2 [50] /*将b串中的字itn; q[+j]=0 printf( please input two strings: ) /在a串中写入- scanf("%s%s",str1,str2) My_strcat(str1, str2) printf The result: %s \n", str1)
8 写函数,连接两个字符串 ▪ 算法: ▪ 输入两个字符串a,b ▪ 连接字符串a,b ▪ 找到第一个字符串的末尾 ▪ 将第二个字符串接入 ▪ 输出 h e l l o \0 l i \0 #include<stdio.h> void My_strcat(char a[],char b[]); /*函数功能:将两个字符串连接后存在a中*/ void My_strcat(char a[] ,char b[]) {int i; for(i=0; a[i]!=‘\0’;i++); /*i指向a串最后一个字符的下一个位置,这句也可直接改为 i=strlen(a);*/ for(j=0; b[j] !=‘\0’;j++) a[i+j]=b[j]; /*将b串中的字符一个一个接入*/ a[i+j]=‘\0’; /*在a串中写入一个结束标记*/ } void main() { char str1[100],str2[50]; int n; printf(" please input two strings: "); scanf("%s%s",str1,str2); My_strcat(str1,str2); printf("The result:%s.\n",str1); }
调用过程 实参数组str1 HE 6000 实参数组str2 6200 主函数 更多例题请参数例6-14至6-17
9 调用过程 形参数组a My_strcat函数 参数传递 传过来的是数组首地址 实参数组与形参数组共占内存 6000 67 78 97 79 l l o h e l i …… 实参数组str1 主函数 实参数组str2 形参数组b 6200 H E L l o l i 6000 6200 实参数组str1 主函数 实参数组str2 •更多例题请参数例6-14至6-17