C语言实验八 字符数组程序设计

简介: C语言实验八 字符数组程序设计

一、实验目的

(一)掌握字符数组的定义、初始化和应用;

(二)掌握字符串处理函数的使用。

二、预习要求

重点预习的内容:C语言中字符串的存储表示;字符数组输入输出的方法;常用的字符串处理函数的使用。

三、实验内容

(一)输入下面的程序并运行,观察程序运行的结果,并分析原因(注意程序第2行中有些单引号之间是空格)。 

1. /*   c8-1.c   字符数组的输出*/
2. #include "stdio.h"
3. void main( )
4. { char a[10]={ ’I’, ’ ’, ’a’, ’m’, ’ ’, ’a’, ’ ’, ’b’, ’o’, ’y’};
5.   printf("%s\n",a);
6. }

将字符数组a的大小改为11,再运行程序,并将结果与修改前的结果进行比较,分析原因。

(二)下面程序的功能是实现将两个字符串连接起来并输出结果,注意不使用strcat函数。

编程提示:

1.定义两个一维字符型数组str1、str2和两个循环变量。

2.为两个字符数组输入两个字符串(可使用scanf函数或gets函数整体赋值,要注意scanf和gets函数的区别,在对字符串赋值时,scanf函数不能出现空格)。

3.确定字符数组str1结束的位置。

4.再将字符数组str2中的内容连接到字符数组str1的后面。

5.为字符数组str1赋字符串结束的标志’\0’。

6.输出连接后的字符数组str1。

1. /*   c8-3.c    字符串连接*/
2. #include "stdio.h"
3. void main( )
4. { char str1[100],str2[100];
5.   int i=0,j=0;
6.   printf("please input the string1:");
7.   scanf("%s",str1);
8.   printf("please input the string2:");
9.   gets(str2);
10. for(i=0; str1[i]!='\0'; i++) ;  /*注意,此处空语句不可少*/
11.      for(j=0;str2[j]!='\0';j++)
12.      { str1[i]=str2[j];
13.        i++;
14.      }
15.   str2[i]='\0';                 /*给出新的字符串的结束符*/
16.   printf("the catenated string is %s",str1);
17. }

(三)下面程序的功能是用strcat函数实现将字符串2连接到字符串1的后面并输出。

1. /*   c8-4.c    字符串连接*/
2. #include "stdio.h"
3. #include "string.h"
4. void main( )
5. { char str1[80]="This Is a ",str2[80]="c Program";
6.   printf("String1 is: %s\n",str1);
7.   printf("String2 is: %s\n",str2);
8.   strcat(str1,str2);     /*使用strcat函数实现*/
9.   printf("Result is: %s\n",str1);
10. }

(四)下面程序的功能是实现将一个字符串中的所有大写字母转换为小写字母并输出。

例如:当字符串为"This Is a c Program" 

输出:"this is a c program" 

1. /*   c8-5.c    字符串中的大写字母转为小写字母*/
2. #include "stdio.h"
3. void main( )
4. { char str[80]="This Is a c Program";
5.   int i;
6.   printf("String is: %s\n", str);
7.   for(i=0; str[i]!='\0'; i++)
8.      if (str[i]>='A' && str[i]<='Z')
9.      str[i]=str[i]+32;        /*将大写字母转换成小写字母*/
10.   printf("Result is: %s\n",str);
11. }

思考:如果将字符串中的所有小写字母转换为大写字母,又将如何修改程序?

四、实验注意事项

(一)注意C语言中字符串是作为一维数组存放在内存中的,并且系统对字符串常量自动加上一个‘\0’作为结束符,所以在定义一个字符数组并初始化时要注意数组的长度。

(二)注意用scanf函数对字符数组整体赋值的形式。

目录
相关文章
|
17天前
|
存储 编译器 C语言
C语言之数组
C语言之数组
24 0
|
3天前
|
存储 编译器 C语言
C语言:字符函数 & 字符串函数 & 内存函数
C语言:字符函数 & 字符串函数 & 内存函数
11 2
|
6天前
|
机器学习/深度学习 C语言
C语言三维数组的创建
该代码片段展示了如何在C语言中创建一个动态的3D数组。由于`n`在编译时未知,不能直接声明为`int f[n][n][n]`。正确的方法是使用`malloc`进行动态内存分配。首先分配`n`个`int **`,然后对每一层分配`n`个`int *`,最后每个元素分配`n`个`int`。之后可以使用这个3D数组,并在完成后正确释放内存。
10 2
|
14天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
14天前
|
C语言
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
C语言 浙大版《C语言程序设计(第3版)》题目集 练习8-8 移动字母 (10分)
|
14天前
|
C语言
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
浙大版《C语言程序设计(第3版)》题目集 练习8-2 计算两数的和与差 (10分)
|
14天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
14天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
14天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
14天前
|
C语言
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)