这个作业属于哪个课程 | C语言程序设计ll |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class1-2018/homework/3076 |
我在这个课程的目标是 | 了解并学习常用的字符串处理函数和用指针实现内存动态分配 |
这个作业在哪个具体方面帮助我实现目标 | 这个作业让我了解和学习了常用的字符串处理函数和用指针实现内存动态分配的知识 |
参考文献 | 书本8.4电码加密和8.5任意个整数求和的内容和百度的一些资料 |
一、基础题
6-1 函数实现字符串逆序 (15 分)
本题要求实现一个字符串逆序的简单函数。
函数接口定义:
void f( char *p );
函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。
裁判测试程序样例:
#include <stdio.h>
#define MAXS 20
void f( char *p );
void ReadString( char *s ); /* 由裁判实现,略去不表 */
int main()
{
char s[MAXS];
ReadString(s);
f(s);
printf("%s
", s);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
Hello World!
输出样例:
!dlroW olleH
1.实验代码
void f( char *p )
{
int i=0,l,n;
char m;
while(p[i]!=' ')
i++;
l=i-1;
while(n<=l)
{
m=p[n];
p[n]=p[l];
p[l]=m;
n++;
l--;
}
return ;
}
全部代码
#include <stdio.h>
#include <string.h>
#define MAXS 20
void f( char *p );
void ReadString( char *s );
int main()
{
char s[MAXS];
ReadString(s);
f(s);
printf("%s
", s);
return 0;
}
void f( char *p )
{
int i=0,l,n;
char m;
while(p[i]!=' ')
i++;
l=i-1;
while(n<=l)
{
m=p[n];
p[n]=p[l];
p[l]=m;
n++;
l--;
}
return ;
}
2.设计思路
3.解题过程中遇到的问题及解决办法
问题:出现ISO C++ forbids comparison between pointer and integer的提示
解决方法:
错误代码:
if(p[i]!="