第8周作业
这个作业属于那个课程 | C语言程序设计II |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/MS/homework/3080 |
我在这个课程的目标是 | 掌握常用字符串函数以及使用指针操作字符串的方法,掌握动态内存分配 |
这个作业在那个具体方面帮助我实现目标 | 让我掌握常用字符串函数以及使用指针操作字符串的方法,掌握动态内存分配 |
参考文献 | c语言程序设计第3版 |
6-1 函数实现字符串逆序
本题要求实现一个字符串逆序的简单函数。
函数接口定义:
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\n", s);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
Hello World!
输出样例:
!dlroW olleH
代码
void f( char *p ) { int i=0,j=0,k; while(p[i]!='\0') i++; i=i-1; while(j<i){ k=p[i]; p[i]=p[j]; p[j]=k; j++; i--; } }
6-3 字符串的连接 (15 分)
本题要求实现一个函数,将两个字符串连接起来。 函数接口定义: char *str_cat( char *s, char *t ); 函数str_cat应将字符串t复制到字符串s的末端,并且返回字符串s的首地址。 裁判测试程序样例:
#include <stdio.h> #include <string.h> #define MAXS 10 char *str_cat( char *s, char *t ); int main() { char *p; char str1[MAXS+MAXS] = {'\0'}, str2[MAXS] = {'\0'}; scanf("%s%s", str1, str2); p = str_cat(str1, str2); printf("%s\n%s\n", p, str1); return 0; } /* 你的代码将被嵌在这里 */
输入样例:
abcdef
输出样例:
abcdefabcdef
代码:
char *str_cat(char *s, char *t) { int a,i; a=strlen(s); while(t[i]!='\0') { s[i+a]=t[i]; i++; } return s; }
周/日期 | 这周所花时间 | 代码行数 | 目前比较迷茫的问题 | 学到的知识点 |
第八周/4月19日 | 一天 | 26 | 动态内存分配不熟悉 | 动态内存分配 |