2)关于处理字符数组函数的参数书写问题

首先我先展示一个截图,表示两个代码的传值问题“

 

 

然后代码展示

 1 #include <stdio.h>
 2 #define N 100
 3 
 4 /*字符串长度计算函数*/
 5 
 6 int len(char ch[]){
 7     int i=0;
 8     while (ch[i]!='\0'){                 
 9           i++;                   
10     }            
11     return i;
12 }
13 
14 /*字符串打印函数*/
15 
16 void chPrint(char ch[]){
17      printf("%s",ch);                 
18 }
19 
20 /*字符串插入字符串函数*/
21 
22 int chIns(char ch[],char ch1[],int k){
23      int i;
24      int len_ch=len(ch);
25      int len_ch1=len(ch1);
26      if (k>len_ch) {
27         printf("插入的位置大于第一个字符串的长度,程序退出!");
28         return -1;            
29      }
30      else {
31          for (i=len_ch+len_ch1-1;i>=k+len_ch1;i--){
32 
33              ch[i]=ch[i-len_ch1];       /*移动字符将要插入的位置空出来*/
34 
35          }
36          for (i=0;i<len_ch1;i++){
37              ch[k+i]=ch1[i];     /*插入字符串*/                       
38          }
39          ch[len_ch+len_ch1]='\0';  /*设置字符结束符*/
40          return 1;
41      }               
42 }
43 int main(){
44     char a[N],b[N];
45     int k,ins;         
46     printf("请输入第一个字符串");
47     scanf("%s",a);
48     printf("请输入第二个字符串");
49     scanf(" %s",b);
50     printf("请输入想在第一个字符串的第几个字符后面插入第二个字符串");
51     scanf("%d",&k);    
52     ins=chIns(a,b,k);  /*ins用来接收插入函数的返回值,判断是否执行了插入操作*/
53     if (ins==1) {
54         chPrint(a);
55     }
56     getch();
57     return 0;
58 }

第二个代码展示:

 1 //
 2 // Created by Interact on 2017/9/6.
 3 //
 4 
 5 #include <stdio.h>
 6 #define N 100
 7 
 8 /*字符串长度计算函数*/
 9 
10 int len(char *ch){
11     int i=0;
12     while (ch[i]!='\0'){
13         i++;
14     }
15     return i;
16 }
17 
18 /*字符串打印函数*/
19 
20 void chPrint(char *ch){
21     printf("%s",ch);
22 }
23 
24 /*字符串插入字符串函数*/
25 
26 int chIns(char *ch,char *ch1,int k){
27     int i;
28     int len_ch=len(ch);
29     int len_ch1=len(ch1);
30     if (k>len_ch) {
31         printf("插入的位置大于第一个字符串的长度,程序退出!");
32         return -1;
33     }
34     else {
35         for (i=len_ch+len_ch1-1;i>=k+len_ch1;i--){
36             
37             ch[i]=ch[i-len_ch1];       /*移动字符将要插入的位置空出来*/
38             
39         }
40         for (i=0;i<len_ch1;i++){
41             ch[k+i]=ch1[i];     /*插入字符串*/
42         }
43         ch[len_ch+len_ch1]='\0';  /*设置字符结束符*/
44         return 1;
45     }
46 }
47 int main(){
48     char a[N],b[N];
49     int k,ins;
50     printf("请输入第一个字符串");
51     scanf("%s",a);
52     printf("请输入第二个字符串");
53     scanf(" %s",b);
54     printf("请输入想在第一个字符串的第几个字符后面插入第二个字符串");
55     scanf("%d",&k);
56     ins=chIns(a,b,k);  /*ins用来接收插入函数的返回值,判断是否执行了插入操作*/
57     if (ins==1) {
58         chPrint(a);
59     }
60     getch();
61     return 0;
62 }

 

posted @ 2017-09-06 18:43  小油菜1  阅读(217)  评论(0编辑  收藏  举报