实验九 指针与字符串 实验目的 掌握处理字符串的两种方法,即用char型数组米处理字符串或用char型指针来处 理字符串。 要点提示 1.在C语言中,对字符串常量是按字符数组处理的,在内存中开辟一块连续的空间存放字 符串常量,理解为字符数组存放。 定义格式: char数组名[: 例:char str[20]: 4.字符指针的定义格式: char*指针变量: 例:char*str: 实验内容 1.字符数组的定义、初始化和引用 2.字符指针的定义、初始化和引用 3.字符串指针作函数参数 实验步骤 读懂并输入程序,完成填空后输出结果,(下面程序中的中文注释可以不输入) 实验1编程求一个字符串的长度,用字符数组实现 main() int len=0: char str[20],和: printf("\nInput a string:"); scanf("%s",str); p=str: hile(知!e\0) len++: 【p+】 /条字符串指针自增 printf("\nThe length is:%d",【len】): 程序运行结果: Input a string:China The length is:【5】 实验2 main()
实验九 指针与字符串 实验目的 掌握处理字符串的两种方法,即用 char 型数组来处理字符串或用 char 型指针来处 理字符串。 要点提示 1. 在 C 语言中,对字符串常量是按字符数组处理的,在内存中开辟一块连续的空间存放字 符串常量,理解为字符数组存放。 2. 字符数组的每个元素只能存放一个字符。 3. 字符数组的定义格式: char 数组名[]; 例:char str[20]; 4. 字符指针的定义格式: char *指针变量; 例:char *str; 实验内容 1.字符数组的定义、初始化和引用 2.字符指针的定义、初始化和引用 3.字符串指针作函数参数 实验步骤 读懂并输入程序,完成填空后输出结果,(下面程序中的中文注释可以不输入) 实验 1 编程求一个字符串的长度, 用字符数组实现 main() { int len=0; char str[20], *p; printf("\nInput a string:"); scanf("%s",str); p=str; while (*p!='\0') { len++; 【 p++ 】; /* 字符串指针自增 */ } printf("\nThe length is:%d",【 len 】); } 程序运行结果: Input a string: China The length is: 【 5 】 实验 2 main()
char max.*s="I am a student": int n; max=*s hile(*s!=\0) 【if(*s>max)ax=*s: 【s++】: 1 printf("AnThe max character is:%c”,x): 程序运行结果: The max character is:【u】 实验3 #include〈stdio.h #include <string.h> main() char s[811.*pl1.*p2 gets(s): n=strlen(s); n1=g: n2=【stn-i】 hile(【pl<p2】)) if (*pl!=*p2)break; else{pl+:【p2-】:} if (pl<p2)printf("No\n") else printf("Yes\n"): 程序运行结果: Input a string:level 【yeg】 再次运行程序: Input a string:123453 【No】 实验4 ain( (char s1[80],s2[80]: printf("\nInput a string:): gets(s1): printf("\nInput a string:"); gets(s2);
{ char max, *s="I am a student"; int n; max=*s; while (*s!='\0') { if (*s > max) max=*s; 【 s++ 】; } printf("\nThe max character is: %c", max); } 程序运行结果: The max character is: 【 u 】 实验 3 #include <stdio.h> #include <string.h> main() { char s[81],*p1,*p2; int n; pirntf("\nInput a string:"); gets(s); n=strlen(s); p1=s; p2 = 【s+n-1 】; while (【p1<p2】) { if (*p1!=*p2) break; else { p1++; 【p2-】;} } if (p1<p2) printf("No\n"); else printf("Yes\n"); } 程序运行结果: Input a string: level 【 Yes 】 再次运行程序: Input a string: 123453 【 No 】 实验 4 main() { char s1[80],s2[80]; printf("\nInput a string:"); gets(s1); printf("\nInput a string:"); gets(s2);
conj(s1,s2); puts(s1): conj(char和l,char*柳2 char *p=pl hi1e(*知1I=103)【D1++:】 hile(p20){l=【2】:pl:p2+:】 Input a string:Bei Input a string:iing 【Beijing】
conj(s1,s2); puts(s1); } conj(char *p1,char *p2) { char *p=p1; while (*p1!='\0') 【 p1++ ; 】 while (*p2 !='\0') { *p1=【 *p2】; p1++;p2++;} *p1='\0'; } Input a string: Bei Input a string: jing 【 Beijing 】