C程序设计上机实验报告11

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C程序设计实验报告

实验名称:指针与字符串学时安排:2课时

实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

一、实验目的

1. 掌握通过指针操作字符串的方法;

二、实验设备介绍

软件需求: Visual C++ 6.0或CFree3.5以上版本

硬件需求: 对于硬件方面的要求,建议配置是Pentium III 450以上的CPU 处理器,64MB以上的内存,200MB的自由硬盘空间、CD-ROM驱动器、能支持24位真彩色的显示卡、彩色显示器、打印机。

三、实验内容

1.输入一个字符串t和一个正整数m,讲t中从第m个(m小于字符串长度)字符开始的全部字符复制的字符串s中,再输出字符串s。要求用字符指针定义并调用函数strmcpy(s, t, m),它的功能是将字符串t中从第m个字符开始的全部字符复制到字符串s中。示例如下:Input a string: happy new year!

Input an integers: 7

Output is: new year!

2. 编写一个函数delchar(s, c),该函数将字符串s中出现的所有c字符删除。自己定义main 函数,并在其中调用delchar(s,c)函数。D此大锅饭

3. 改正程序error08_

4.cpp中的错误。函数strc的作用是将字符串s连接到t的尾部。在

主函数中输入两个字符串s和t,调用strc完成字符串的连接。输入输出结果如下所示:World!

Hello

HelloWorld!

要求把正确的代码(按规范缩进)写入报告,并以注释的方式说明错误原因。

注释示例如下:

int i; /*循环控制变量不能定义为double类型*/

4. 编程判断输入的一串字符是否为“回文”,如果是输出“Yes”,否则输出“No”。所谓“回文”,是指顺读和倒读都一样的字符串。如“XYZYX”和“xyzzyx”都是回文。

四、程序清单

第一题

#include

void strmcpy(char str[],char t[],int m){

int i=0,n; char *s; s=str;

for(s+=m-1;*s!=0;s++)

{

t[i]=*s;

i++; }

printf("Output is:");

for(n=0;n

puts(t);

printf("\n");

}

int main(){

char s[80],t[80];

int m;

printf("Input a string:");

gets(s);

printf("Input an integer:");

scanf("%d",&m);

strmcpy(s,t,m);

return 0;

}

第二题

#include

int i;

char str[80];

void delchar(char str[],char c) {

char *s;

for(s=str;*s!='\0';s++)

{

if(*s==c)

*s='\0';

i++;

}

}

int main()

{

int n;

char a,str[80];

printf("Input a string:");

gets(str);

printf("Input a char:");

a=getchar();

printf("After deleted,the string is:");

delchar(str,a);

for(n=0;n<=i;n++)

{

if(str[n]!='\0')

putchar(str[n]);

}

printf("\n");

return 0;

}

第三题

# include

void strc(char *s, char *t);/*形参应该是指针或数组*/

int main()

{

char s[80], t[80];

gets(s);

gets(t);

strc(s, t);

puts(t);

return 0;

}

void strc(char *s, char *t) /*形参应该是指针或数组*/

{

while (*t!='\0')

t++;

while (*t++=*s++); /*判断条件不对,While的结束标志就是*s = NULL的时候,应当改成这样*/

}

第四题

#include

#include

int main(void)

{

char a[100];

int i,j;

gets(a);

i=0;

j=strlen(a)-1;

while(i

{

if(a[i]==a[j])

{i++;j--;}

else break;

}

if(i>=j)

printf("Yes!\n");

else printf("No!\n");

return 0;

}

五、运行结果

第一题

相关文档
最新文档