C语言实验报告2014110637C07

更新时间:2023-09-22 20:23:01 阅读量: 经管营销 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验编号:四川师大 实验报告 2016年月日

计算机科学学院级班 实验名称:字符串与指针 _

姓名:_仁青拉初________ 学号:2014110637 指导老师:_刘洪_ 实验成绩:_____ 实验七字符串与指针 实验 (验证性综合性实验4学时)

1、目的要求:

(1)掌握用指针进行函数参数传递的方法。

(2)掌握指针数组和二维数组间的关系以及进行参数传递时的写法。 (3)编写实验报告。

2、实验内容(参考实验指导书):

(1)编写一个书名排序程序,输入10个书名存入一个二维数组,用函数void sortstring( char *name[] , int n)实现它们的字典顺序。

(2)编写函数void search( char *s1, char *s2, char *s3)。函数search()从已知的两个字符串s1与s2中找出它们都包含的最长的单词放入字符串s3,约定字符串中只有小写字母和空格字符,单词用1个或1个以上空格分隔。

(3)编写一个主函数,测试上述两个函数的正确性。 (4)输入一个字符串,内有数字和非数字字符,例如: A123cdf 456.78cpc876.9er 849.1

将其中连续的数字作为一个实数,依次存放到一数组a中。例如123存放在a[0],456.78存放在a[2],依次类推,统计共有多少个数,并输出这些数。

一.实验主要流程、基本操作或核心代码、算法片段(该部分如不够填写,请另加附页)

(1) 编写一个书名排序程序,输入10个书名存入一个二维数组,用函数void

sortstring( char *name[] , int n)实现它们的字典顺序。 #include #include

void sortstring(char *name[],int n) { char *p; int i,j;

for(i=0;i

if(strcmp(name[i],name[j])>0) { p=name[i]; name[i]=name[j];

name[j]=p; } } } main() {

char *name[]={\,\int a;

sortstring(name,10); for(a=0;a<10;a++) printf(\

(2) 编写函数void search( char *s1, char *s2, char *s3)。函数search()从已知的两个

字符串s1与s2中找出它们都包含的最长的单词放入字符串s3,约定字符串中

只有小写字母和空格字符,单词用1个或1个以上空格分隔。 #include #include #include

void search(char *s1, char *s2, char *s3) { char *p;

int word,i,m,n; char a[20]; p=s1; s3[0]='\\0';

while (*p!='\\0') { word=0;

for (i=0;p[i]!='\\0';i++) { if (p[i]!=' '&&word==0) {

word=1;

m=i; }

else if (p[i]==' '&&word==1){

n=i; break; } }

if (p[i]=='\\0'&&word==1)

n=i;

if (word==1) {

strncpy(a,p+m,n-m); a[n-m]='\\0';

char *pfind;

if ( (pfind=strstr(s2,a))!=NULL ) {

if ( *(pfind+strlen(a))==' ' || *(pfind+strlen(a))=='\\0' )

if (strlen(a)>strlen(s3)) strcpy(s3,a); } p=p+n; }

else break; } } main() {

char *s1=\char *s2=\ char s3[20]; search(s1,s2,s3); printf(\

(3)编写一个主函数,测试上述两个函数的正确性。

输入一个字符串,内有数字和非数字字符,例如: A123cdf 456.78cpc876.9er 849.1

将其中连续的数字作为一个实数,依次存放到一数组a中。例如123存放在a[0],456.78存放在a[2],依次类推,统计共有多少个数,并输出这些数。 #include

void f(char *sp,float b[]) { char *p; float value;

int power,i=0,j=0; p=sp;

while(*p) { for(;!(*p>='0'&&*p<='9');p++) value=0;

for(value=0;(*p>='0'&&*p<='9');p++,i++) value=value*10+*p-'0'; if(*p=='.') p++;

for(power=1;(*p>='0'&&*p<='9');p++,i++) {

value=value*10+*p-'0'; power=power*10; }

value=value/power; b[j++]=value; }

printf(\数字个数为:%d\\n\void main() { int j;

float b[4]={0};

char *a=\ f(a,b);

for(j=0;j<4;j++)

printf(\

二.实验结果的分析与评价(该部分如不够填写,请另加附页)

掌握了用指针进行函数参数传递的方法。

掌握了指针数组和二维数组间的关系以及进行参数传递时的写法。

注:实验成绩等级分为(90-100分)优,(80-89分)良,(70-79分)中,(60-69分)及格,(59分)不及格。

本文来源:https://www.bwwdw.com/article/kqcd.html

Top