【例5.19】编程求一字符串的长度。要求:不使用库函数strlen()。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int n;
5 char ch[]="telephone number";
6 n=0;
7 while(ch[n]!=′\0′)
8 n=n+1;
9 printf("The length of the string is%d\n",n);
10 return 0;
11 }
程序结果如图5.20所示:
图5.20 例5.19程序结果图
【例5.20】编程实现两个字符串的连接。要求:不使用库函数strcat()。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 char a[30]="shandong",b[]="jinan";
5 int i=0,j=0;
6 while(a[i])
7 i=i+1;
8 while(b[j])
9 {
10 a[i]=b[j];
11 i=i+1;
12 j=j+1;
13 }
14 a[i]=′\0′;
15 puts(a);
16 return 0;
17 }
也可以将程序简化成下列程序:
1 #include<stdio.h>
2 int main()
3 {
4 char a[30]="shandong",b[]="jinan";
5 int i=0,j=0;
6 while(a[++i]);
7 while(b[j])
8 a[i++]=b[j++];
9 a[i]=′\0′;
10 puts(a);
11 return 0;(www.xing528.com)
12 }
程序结果如图5.21所示:
图5.21 例5.20程序结果图
【例题中关键问题说明】
特别注意程序中循环的条件,“while(a[++i]);”相当于“while(a[++i]!=′\0′);”也相当于“while(a[++i]!=0);”,就是找到字符串结束的位置。后一个循环也是一样的。
【例5.21】编程实现将一个字符串复制到一个数组中。要求:不使用库函数strcpy()。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 char a[]="shandong",b[]="jinan";
5 int i=0;
6 while(b[i])
7 {
8 a[i]=b[i];
9 i=i+1;
10 }
11 a[i]=′\0′;
12 puts(a);
13 return 0;
14 }
程序结果如图5.22所示:
图5.22 例5.21程序结果图
【例5.22】编程比较两个字符串的大小。要求:不使用库函数strcmp()。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 char a[]="shandong",b[]="shanghai";
5 int i=0,n;
6 while(a[i]==b[i]&&a[i]!=′\0′&&b[i]!=′\0′)
7 i=i+1;
8 n=a[i]-b[i];
9 if(n>0)printf("%s>%s\n",a,b);
10 if(n==0)printf("%s=%s\n",a,b);
11 if(n<0)printf("%s<%s\n",a,b);
12 return 0;
13 }
程序结果如图5.23所示:
图5.23 例5.22程序结果图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。