这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zswxy/SE2020-4 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2020-4/homework/11988 |
这个作业的目标 | 学会运用指针解决问题,编写函数,字符串数组的使用 |
学号 | 20209202 |
一、本周作业(总分:20分)
1.1 完成PTA作业,并给出编程题完成截图(5分)
6-1 mystrcpy
编写一个函数 char *mystrcpy(char *s1, const char *s2)
它的功能是把字符串s2中的所有字符复制到字符数组s1中。函数返回指向数组s1第一个元素的指针。
函数接口定义:
函数接口:
char *mystrcpy(char *s1, const char *s2);
把字符串s2中的所有字符复制到字符数组s1中。函数返回指向数组s1第一个元素的指针。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
include <stdio.h>
char *mystrcpy(char *s1, const char *s2);
int main()
{
char a[30], b[30], c[30];
gets(c);
mystrcpy(a, mystrcpy(b, c));
puts(a);
return 0;
}
/* 请在这里填写答案 */
输入样例:
abcd
输出样例:
abcd
代码截图
6-2 mystrcat
编写一个函数 char* mystrcat(char *s1, const char *s2)
函数功能是把字符串s2的所有元素连接到字符串s1之后。
函数接口定义:
函数接口:
char* mystrcat(char *s1, const char *s2);
把字符串s2的所有元素连接到字符串s1之后。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
include <stdio.h>
char *mystrcat(char *s1, const char *s2);
int main()
{
char a[100] = "abcd", b[60], c[30];
scanf("%s", b);
scanf("%s", c);
mystrcat(a, mystrcat(b, c));
puts(a);
return 0;
}
/* 请在这里填写答案 */
输入样例:
fgh
ijk
输出样例:
abcdfghijk
代码截图
6-3 mystrcmp
写一个函数 int mystrcmp(const char *string1, const char *string2)
函数的功能是比较2个字符串的大小。返回值表示两个字符串比较的结果。
函数接口定义:
函数接口:
int mystrcmp(const char *string1, const char *string2);
函数的功能是比较2个字符串的大小。返回值表示两个字符串比较的结果。
捕获.PNG
字符串比较的规则是对两个字符串自左至右逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到‘ ’为止。如全部字符相同,则认为相等;若出现不同的字符,则以第一个不相同的字符的比较结果为准。 例如:
“A”< “B”,“a”>“A”,“computer”>“compare”,“these”>“that”, “36+54”<“99”, “CHINA”>“CANADA”, “DOG”<“cat”,“abc”<“ax”,“abcde”>“abcd”。
裁判测试程序样例:
在这里给出函数被调用进行测试的例子。例如:
include <stdio.h>
int mystrcmp(const char *s1, const char *s2);
int main()
{
char s1[30], s2[30];
scanf("%s", s1);
scanf("%s", s2);
if (mystrcmp(s1, s2) > 0)
{
printf("%s > %s
", s1, s2);
}
if (mystrcmp(s1, s2) == 0)
{
printf("%s == %s
", s1, s2);
}
if (mystrcmp(s1, s2) < 0)
{
printf("%s < %s
", s1, s2);
}
return 0;
}
/* 请在这里填写答案 */
输入样例:
abcd
ax
输出样例:
abcd < ax
代码截图
6-4 字符数组与字符串:删除字符串所有空格。
编写一个函数,用来删除字符串中的所有空格。
函数接口定义:
在这里描述函数接口。例如:
void fun(char *str) ;
裁判测试程序样例:
include "stdio.h"
void fun(char *str) ;
main()
{
char str[81] ;
gets(str) ;
fun(str) ;
printf("%s",str) ;
}
/* 请在这里填写答案 */
输入样例:
I hope you are right!
输出样例:
Ihopeyouareright!
代码截图
7-1 向右移动字符串 (15 分)
对于字符串“abcd”:
向右移动1个单位变为“dabc”。
向右移动2个单位变为“cdab”。
向右移动3个单位变为“bcda”。
输入格式:
输入包含两行。第一行:一个非负整数N(在32 位整数范围内)代表向右移动次数。第二行:一个不包含空格的非空字符串(长度小于1001)。
输出格式:
输出在移动N个单位长度后的字符串。
输入样例:
4
abcdef
输出样例:
cdefab
代码截图
1.2 请给出本章学习总结(15分)
1 学习进度条(5分)
周/日期 | 这周花的时间 | 代码行数 | 学到的知识简介 | 目前比较困惑的问题 |
---|---|---|---|---|
第一周 | 一天 | 74 | 如何读取文件 | 半懂 |
第二周 | 一天 | 82 | 运用数组 | 如何改进更优 |
第三周 | 两天 | 70 | 使用字符串编程 | 对字符串编程不够熟练,还有点不明白 |
第四周 | 三天 | 109 | 运用字符串数组和指针 | 函数的编写 |
2 累积代码行和博客字数(5分)
3 学习内容总结和感悟(5分)
3 学习内容总结和感悟
这周学习的东西较多,而且学习到了指针,这个指针很关键,一定要弄懂。