实验1
功能是分别找到输入数中的最小值和最大值
两者都指向x[0]
功能是找到最大数,返回的是最大数的地址
可以,因为改变之后返回的也是最大值的地址
实验2
s1大小是24个字节,sizeof以字节为单位返回一个变量,表达式或类型的长度,
strlen是计算字符串长度的,不包含结尾符号‘\0’
不能,因为定义数组s1时,没规定长度
内容交换了
sizeof(s1)可能是4或8,看指针变量在不同计算机中所占字节数
strlen(s1)同上
可以,一个是定义数组内容,一个是将指针指向一个字符串的地址
实验3
一个代替数组名称的指针
一个指针数组
实验四
将字符串中的某个旧字符该成新字符
不可以,那样的话新的字符串末尾没有结束符号
实验5
交换的是指针变量的值
实验六
#include <stdio.h> #include <string.h> #define N 5 int check_id(char *str); // 函数声明 int main() { char *pid[N] = {"31010120000721656X", "330106199609203301", "53010220051126571", "510104199211197977", "53010220051126133Y"}; int i; for (i = 0; i < N; ++i) if (check_id(pid[i])) // 函数调用 printf("%s\tTrue\n", pid[i]); else printf("%s\tFalse\n", pid[i]); return 0; } // 函数定义 // 功能: 检查指针str指向的身份证号码串形式上是否合法。 // 形式合法,返回1,否则,返回0 int check_id(char *str) { // int a=1; if(strlen(str)!=18) return 0; //a=0; int i; for(i=0;i<18;i++) { if(str[i]<48||str[i]>57) { if(str[i]!=88) { return 0; // a=0; //break; } } } return 1; // 补足函数实现 // ... }
实验七
#include <stdio.h> #define N 80 void encoder(char *str); // 函数声明 void decoder(char *str); // 函数声明 int main() { char words[N]; printf("输入英文文本: "); gets(words); printf("编码后的英文文本: "); encoder(words); // 函数调用 printf("%s\n", words); printf("对编码后的英文文本解码: "); decoder(words); // 函数调用 printf("%s\n", words); return 0; } /*函数定义 功能:对s指向的字符串进行编码处理 编码规则: 对于a~z或A~Z之间的字母字符,用其后的字符替换; 其中,z用a替换,Z用A替换 其它非字母字符,保持不变 */ void encoder(char *str) { while(*str) { if((*str<122&&*str>=97)||(*str<90&&*str>=65)) { *str+=1; } else if(*str=122) *str=97; else if(*str=90) *str=65; else *str=*str; str++; } } /*函数定义 功能:对s指向的字符串进行解码处理 解码规则: 对于a~z或A~Z之间的字母字符,用其前面的字符替换; 其中,a用z替换,A用Z替换 其它非字母字符,保持不变 */ void decoder(char *str) { while(*str) { if((*str<=122&&*str>97)||(*str<=90&&*str>65)) { *str-=1; } else if(*str=97) *str=122; else if(*str=6) *str=90; else *str=*str; str++; } }
标签:words,int,else,char,实验,str,printf From: https://www.cnblogs.com/757805abc/p/17859907.html