第八章 字符串作业
This commit is contained in:
parent
65eed8f70f
commit
e5c72f39c7
@ -1,3 +1,3 @@
|
||||
# 第六章 函数作业
|
||||
# 第七章 作业(指针)
|
||||
|
||||
> 作业时间: 2021-11-21 10:01:00 至 2021-12-18 10:00:00
|
||||
> 作业时间: 2021-12-06 19:13:00 至 2021-12-26 23:55:00
|
||||
|
43
08-1/1/README.md
Normal file
43
08-1/1/README.md
Normal file
@ -0,0 +1,43 @@
|
||||
【问题描述】
|
||||
|
||||
回文是正读和倒读都一样的句子。读入一个最大长度不超过50个字符的句子,判断其是否是回文。
|
||||
|
||||
【输入形式】
|
||||
|
||||
输入一个最大长度不超过50个字符的句子
|
||||
|
||||
【输出形式】
|
||||
|
||||
Yes/No
|
||||
|
||||
【输入样例】
|
||||
|
||||
abcba
|
||||
|
||||
【输出样例】
|
||||
|
||||
Yes
|
||||
|
||||
【样例说明】
|
||||
|
||||
输入abcba,判断出它是回文。
|
||||
|
||||
【评分标准】
|
||||
|
||||
该题要求输出一个判断值,答对得20分,每个测试点4分,提交程序文件名为c0604.c。
|
||||
|
||||
# 运行结果
|
||||
|
||||
成功通过编译, 且无编译警告
|
||||
|
||||
共有测试数据:5
|
||||
平均占用内存:1.928K
|
||||
平均CPU时间:0.00589S
|
||||
平均墙钟时间:0.00589S
|
||||
|
||||
测试数据 评判结果
|
||||
测试数据1 完全正确
|
||||
测试数据2 完全正确
|
||||
测试数据3 完全正确
|
||||
测试数据4 完全正确
|
||||
测试数据5 完全正确
|
20
08-1/1/c0604.c
Normal file
20
08-1/1/c0604.c
Normal file
@ -0,0 +1,20 @@
|
||||
#include<stdio.h>
|
||||
#include<string.h>
|
||||
|
||||
int main(){
|
||||
int n;
|
||||
char a[50];
|
||||
|
||||
scanf("%s",a);
|
||||
n=strlen(a)-1;
|
||||
|
||||
for(int i=0;i<n;i++){
|
||||
if(a[i]!=a[n-i]){
|
||||
printf("No");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
printf("Yes");
|
||||
return 0;
|
||||
}
|
54
08-1/2/README.md
Normal file
54
08-1/2/README.md
Normal file
@ -0,0 +1,54 @@
|
||||
【问题描述】
|
||||
|
||||
编写一个函数invert(s),颠倒输入的字符串参数s后返回。在main()函数中测试此函数:从键盘输入一个正整数n`(n∈[1,20])`,然后再输入n个字符串(长度不大于100),对于每一个字符串,然后调用invert函数进行颠倒字符串操作,将颠倒后的字符串打印在屏幕上。
|
||||
|
||||
【输入形式】
|
||||
|
||||
从键盘输入整数n,然后再输入n个字符串,每行一个字符串。
|
||||
|
||||
【输出形式】
|
||||
|
||||
输出各个字符串颠倒以后的字符串,每个字符串之间用换行符隔开。
|
||||
|
||||
【输入样例】
|
||||
|
||||
```
|
||||
3
|
||||
1AdkflsddfYjkdfDD
|
||||
aaaaaaaaaaAAAAAAAAAA
|
||||
12345678aBc
|
||||
```
|
||||
|
||||
【输出样例】
|
||||
|
||||
```
|
||||
DDfdkjYfddslfkdA1
|
||||
AAAAAAAAAAaaaaaaaaaa
|
||||
cBa87654321
|
||||
```
|
||||
【样例说明】
|
||||
|
||||
因为输入n为3,故输入3个字符串。将字符串"1AdkflsddfYjkdfDD"首尾颠倒后的结果是"DDfdkjYfddslfkdA1";将字符串"aaaaaaaaaaAAAAAAAAAA"首尾颠倒后的结果是"AAAAAAAAAAaaaaaaaaaa";将字符串"12345678aBc"首尾颠倒后的结果是"cBa87654321";故输出:
|
||||
DDfdkjYfddslfkdA1
|
||||
AAAAAAAAAAaaaaaaaaaa
|
||||
cBa87654321
|
||||
|
||||
【评分标准】
|
||||
|
||||
结果完全正确得20分,每个测试点4分,提交程序文件名称为 `c11.c` 。
|
||||
|
||||
# 运行结果
|
||||
|
||||
成功通过编译, 且无编译警告
|
||||
|
||||
共有测试数据:5
|
||||
平均占用内存:1.934K
|
||||
平均CPU时间:0.00524S
|
||||
平均墙钟时间:0.00524S
|
||||
|
||||
测试数据 评判结果
|
||||
测试数据1 完全正确
|
||||
测试数据2 完全正确
|
||||
测试数据3 完全正确
|
||||
测试数据4 完全正确
|
||||
测试数据5 完全正确
|
22
08-1/2/c11.c
Normal file
22
08-1/2/c11.c
Normal file
@ -0,0 +1,22 @@
|
||||
#include<stdio.h>
|
||||
#include<string.h>
|
||||
|
||||
void invert(char s[], int len){
|
||||
char c;
|
||||
for(int i=0;i<len/2;i++){
|
||||
c=s[len-i-1];
|
||||
s[len-i-1]=s[i];
|
||||
s[i]=c;
|
||||
}
|
||||
}
|
||||
int main(){
|
||||
int n;
|
||||
char s[101];
|
||||
scanf("%d",&n);
|
||||
for(int i=0;i<n;i++){
|
||||
scanf("%s",s);
|
||||
invert(s, strlen(s));
|
||||
printf("%s\n",s);
|
||||
}
|
||||
return 0;
|
||||
}
|
26
08-1/3/3.c
Normal file
26
08-1/3/3.c
Normal file
@ -0,0 +1,26 @@
|
||||
#include<stdio.h>
|
||||
#include<string.h>
|
||||
|
||||
int main(){
|
||||
int a=0,b=0,c=0;
|
||||
char s;
|
||||
|
||||
while(s=getchar(),s!=EOF){
|
||||
switch (s) {
|
||||
case 32:
|
||||
a++;
|
||||
break;
|
||||
case 9:
|
||||
b++;
|
||||
break;
|
||||
case 10:
|
||||
c++;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf("%d %d %d",a,b,c);
|
||||
|
||||
return 0;
|
||||
}
|
51
08-1/3/README.md
Normal file
51
08-1/3/README.md
Normal file
@ -0,0 +1,51 @@
|
||||
【问题描述】
|
||||
|
||||
分别统计标准输入中空格、制表符及回车符的个数(输入以Ctrl-Z结束)。
|
||||
|
||||
【输入形式】
|
||||
|
||||
从标准输入中读取字符,可以包含任意字符。输入以Ctrl-Z结束。
|
||||
|
||||
【输出形式】
|
||||
|
||||
分别输出输入字符中空格,制表符和回车符的个数,相邻数字之间用一个空格区分,输出末尾没有空格。
|
||||
|
||||
【样例输入】
|
||||
|
||||
```
|
||||
C lanuage is very important. HAHAHAHAHAA.....
|
||||
HAHAHAHAHAH
|
||||
HAHAHA
|
||||
```
|
||||
|
||||
【样例输出】
|
||||
|
||||
```
|
||||
4 3 3
|
||||
```
|
||||
|
||||
【样例说明】
|
||||
|
||||
字符串中共有4个空格,3个制表符(注意在这里important后面的句点和HAHAHAHAHAA之间有3个制表符,但是在这里显示得并不明显。),以及3个回车,所以输出4 3 3
|
||||
|
||||
【评分标准】
|
||||
|
||||
结果完全正确得25分,每个测试点5分。
|
||||
|
||||
说明:输入以Ctrl-Z结束,即判断输入数据是否为EOF(-1)
|
||||
|
||||
# 运行结果
|
||||
|
||||
成功通过编译, 且无编译警告
|
||||
|
||||
共有测试数据:5
|
||||
平均占用内存:1.909K
|
||||
平均CPU时间:0.00616S
|
||||
平均墙钟时间:0.00616S
|
||||
|
||||
测试数据 评判结果
|
||||
测试数据1 完全正确
|
||||
测试数据2 完全正确
|
||||
测试数据3 完全正确
|
||||
测试数据4 完全正确
|
||||
测试数据5 完全正确
|
47
08-1/4/README.md
Normal file
47
08-1/4/README.md
Normal file
@ -0,0 +1,47 @@
|
||||
【问题描述】
|
||||
|
||||
编写一个程序,从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除重复的字符。
|
||||
|
||||
【输入形式】
|
||||
|
||||
从键盘输入一个字符串,以回车结束输入。要求程序可以处理含有空格的字符串。
|
||||
|
||||
【输出形式】
|
||||
|
||||
程序接收此字符串,然后将其按照字符ASCII码值从小到大的顺序进行排序,并删除重复的字符输出。如果字符串为空,输出也应该为空。
|
||||
|
||||
【样例输入】
|
||||
|
||||
```
|
||||
badacgegfacb
|
||||
```
|
||||
|
||||
【样例输出】
|
||||
|
||||
```
|
||||
abcdefg
|
||||
```
|
||||
|
||||
【样例说明】
|
||||
|
||||
输入badacgegfacb,然后排序、删除重复字符得到abcdefg。
|
||||
|
||||
【评分标准】
|
||||
|
||||
完全正确为20分,每个测试点4分。提交程序文件名为 `trim.c`
|
||||
|
||||
# 运行结果
|
||||
|
||||
成功通过编译, 且无编译警告
|
||||
|
||||
共有测试数据:5
|
||||
平均占用内存:1.925K
|
||||
平均CPU时间:0.00523S
|
||||
平均墙钟时间:0.00524S
|
||||
|
||||
测试数据 评判结果
|
||||
测试数据1 完全正确
|
||||
测试数据2 完全正确
|
||||
测试数据3 完全正确
|
||||
测试数据4 完全正确
|
||||
测试数据5 完全正确
|
38
08-1/4/trim.c
Normal file
38
08-1/4/trim.c
Normal file
@ -0,0 +1,38 @@
|
||||
#include<stdio.h>
|
||||
#include<string.h>
|
||||
|
||||
int if_exist_in_string(char s_[100], char a, int len){
|
||||
for(int i=0;i<len;i++){
|
||||
if(s_[i]==a) return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
int main(){
|
||||
int n,n_=0;
|
||||
char s[100],s_[100],temp;
|
||||
scanf("%s",s);
|
||||
n=strlen(s);
|
||||
|
||||
for(int i=0;i<n;i++){
|
||||
if(if_exist_in_string(s_,s[i],n_)==0){
|
||||
s_[n_]=s[i];
|
||||
s_[n_+1]='\0';
|
||||
}
|
||||
n_=strlen(s_);
|
||||
}
|
||||
|
||||
for(int i=0;i<n_;i++){
|
||||
for(int j=i+1;j<n_;j++){
|
||||
if(s_[i]>s_[j]){
|
||||
temp=s_[i];
|
||||
s_[i]=s_[j];
|
||||
s_[j]=temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for(int i=0;i<n_;i++) {
|
||||
printf("%c",s_[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
3
08-1/README.md
Normal file
3
08-1/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# 第八章 作业(字符串)
|
||||
|
||||
> 作业时间: 2021-12-13 23:17:00 至 2021-12-26 23:55:00
|
@ -69,9 +69,14 @@ A repo to record my study life.
|
||||
- [实验七 指针(2学时)](https://github.com/xtaodada/C-study/tree/master/07)
|
||||
- [1. 利用指针,设计子函数实现求两个数的和差积商](https://github.com/xtaodada/C-study/tree/master/07/1)
|
||||
- [2. 对一组数据置逆,查找操作](https://github.com/xtaodada/C-study/tree/master/07/2)
|
||||
- [第六章 指针作业](https://github.com/xtaodada/C-study/tree/master/07-1)
|
||||
- [第七章 指针作业](https://github.com/xtaodada/C-study/tree/master/07-1)
|
||||
- [1. 数组异或](https://github.com/xtaodada/C-study/tree/master/07-1/1)
|
||||
- [2. 求两组整数的并集2](https://github.com/xtaodada/C-study/tree/master/07-1/2)
|
||||
- [3. 求两组整数的交集a](https://github.com/xtaodada/C-study/tree/master/07-1/3)
|
||||
- [4. 超长正整数的加法](https://github.com/xtaodada/C-study/tree/master/07-1/4)
|
||||
- [5. 二维整型数组的“最小点”](https://github.com/xtaodada/C-study/tree/master/07-1/5)
|
||||
- [第八章 字符串作业](https://github.com/xtaodada/C-study/tree/master/08-1)
|
||||
- [1. 回文判断](https://github.com/xtaodada/C-study/tree/master/08-1/1)
|
||||
- [2. 颠倒字符串](https://github.com/xtaodada/C-study/tree/master/08-1/2)
|
||||
- [3. 统计输入中空格、制表符及回车符的个数](https://github.com/xtaodada/C-study/tree/master/08-1/3)
|
||||
- [4. 删除重复字符排序字符串](https://github.com/xtaodada/C-study/tree/master/08-1/4)
|
||||
|
Loading…
Reference in New Issue
Block a user