实验五

 实验五

 

实验任务11111111111111

1;

问题1:找出最大值及最小值

问题2:指向x[0]

2;

问题1:函数find_max的功能是查找数组中的最大值元素,并返回指向该最大值元素的指针

问题2:不可以,line2应把“&”去掉

 

实验任务22222222222222

1;

问题1:大小为80,sizeof计算的是总字节数,strlen是从第一个字符开始到'\0'结束

问题2:不能,赋值表达式的左边需要是变量,但数组名是常量指针

问题3:交换

2;

问题1:存放的是字符串常量的起始地址,sizeof计算的是内存大小,strlen计算的是从第一个字符开始到结束符的字符个数

问题2:可以,语义相同,但数组只能在定义时赋值,而2.2中的可以指向任意的字符串常量

问题3:交换的地址,不交换

 

实验任务333333333333333

image

问题:第一个指的是指向有四个元素的一维数组的指针,第二个指的是有四个指针的数组

 

实验任务44444444444

image

1.函数replace的功能是将字符串中所有指定的旧字符替换为新字符

2.可以

 

实验任务555555555555

 1 #include <stdio.h>
 2 #define N 80
 3 
 4 char* str_trunc(char* str, char x);
 5 
 6 int main()
 7 {
 8     char str[N];
 9     char ch;
10 
11     while (printf("输入字符串:"), gets(str) != NULL)
12     {
13         printf("输入一个字符:");
14         ch = getchar();
15 
16         printf("截断处理...\n");
17         str_trunc(str, ch);
18 
19         printf("截断处理后的字符串:%s\n\n", str);
20         getchar();
21     }
22     return 0;
23 }
24 
25 char* str_trunc(char* str, char x)
26 {
27     char* start = str;
28     while (*str != '\0')
29     {
30         if (*str == x)
31         {
32             *str = '\0';
33             break;
34         }
35         str++;
36     }
37 
38     return start;
39 }
View Code

 

image

问题:getchar()此处用来储存回车键

 

实验任务666666666666

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define N 5
 4 int check_id(char *str);
 5 int main()
 6 {
 7     char *pid[N] = {"31010120000721656X",
 8                     "3301061996X0203301",
 9                     "53010220051126571",
10                     "510104199211197977",
11                     "53010220051126133Y"};
12     int i;
13     for (i = 0; i < N; ++i)
14         if (check_id(pid[i]))
15             printf("%s\tTrue\n", pid[i]);
16         else
17             printf("%s\tFalse\n", pid[i]);
18     return 0;
19 }
20 
21 int check_id(char *str) {
22     char *p = str;
23     int count = 0;
24 
25     while (*p != '\0') {
26         count++;
27         if (count > 18) return 0;
28         p++;
29     }
30 
31     if (count != 18) return 0;
32 
33     for (int i = 0; i < 17; i++) {
34         if (str[i] < '0' || str[i] > '9') {
35             return 0;
36         }
37     }
38 
39     char last = str[17];
40     if ((last >= '0' && last <= '9') || last == 'X') {
41         return 1;
42     }
43 
44     return 0;
45 }
View Code

image

 

实验任务7777777777777777

 1 #include <stdio.h>
 2 #define N 80
 3 void encoder(char *str, int n);
 4 void decoder(char *str, int n);
 5 int main() {
 6    char words[N];
 7    int n;
 8 
 9    printf("输入英文文本: ");
10    gets(words);
11 
12    printf("输入n: ");
13    scanf("%d", &n);
14 
15    printf("编码后的英文文本: ");
16    encoder(words, n);
17    printf("%s\n", words);
18 
19    printf("对编码后的英文文本解码: ");
20    decoder(words, n);
21    printf("%s\n", words);
22 
23    return 0;
24 }
25 
26 void encoder(char *str, int n) {
27    char *p = str;
28 
29     while (*p != '\0') {
30         if (*p >= 'a' && *p <= 'z') {
31             *p = 'a' + (*p - 'a' + n) % 26;
32         } else if (*p >= 'A' && *p <= 'Z') {
33             *p = 'A' + (*p - 'A' + n) % 26;
34         }
35         p++;
36     }
37 }
38 
39 void decoder(char *str, int n) {
40    char *p = str;
41 
42     while (*p != '\0') {
43         if (*p >= 'a' && *p <= 'z') {
44             *p = 'a' + (*p - 'a' - n + 26) % 26;
45         } else if (*p >= 'A' && *p <= 'Z') {
46             *p = 'A' + (*p - 'A' - n + 26) % 26;
47         }
48         p++;
49     }
50 }
View Code

image

 

实验任务88888888888

 1 #include <stdio.h>
 2 #include<string.h>
 3 
 4 void sort(int n, char *s[]);
 5 
 6 int main(int argc, char *argv[]) {
 7    int i;
 8 
 9    sort(argc-1, argv+1);
10 
11    for(i = 1; i < argc; ++i)
12       printf("hello, %s\n", argv[i]);
13    return 0;
14 }
15 
16 void sort(int n, char *s[]){
17     int i,j;
18     char *tmp;
19 
20     for(i=0;i<n-1;++i)
21        for(j=0;j<n-1-i;++j)
22           if(strcmp(s[j],s[j+1])>0){
23               tmp=s[j];
24               s[j]=s[j+1];
25               s[j+1]=tmp;
26           }
27 }
View Code

image

 

posted @ 2025-12-12 00:06  顾添乐  阅读(5)  评论(0)    收藏  举报