C程序设计上机实验报告11
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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; } 五、运行结果 第一题