当前位置: 首页 > news >正文

【PTA|编程题|期末复习】字符串(一)

【C语言/期末复习】字符和字符串函数(附思维导图/例题)

目录

7-1 组织星期信息

输入样例 (repeat=3) :

输出样例:

代码

7-2 查找指定字符

输入格式:

输出格式:

输入样例1:

输出样例1:

输入样例2:

输出样例2:

代码

7-3 字符串逆序

输入格式:

输出格式:

输入样例:

输出样例:

代码

7-4 统计大写辅音字母

输入格式:

输出格式:

输入样例:

输出样例:

7-5 字符串替换

输入格式:

输出格式:

输入样例:

输出样例:

代码


7-1 组织星期信息

输入一个正整数repeat (0<repeat<10),做repeat次下列运算:

定义一个指针数组将下面的星期信息组织起来,输入一个字符串,在表中查找,若存在,输出该字符串在表中的序号,否则输出-1。

Sunday Monday Tuesday Wednesday Thursday Friday Saturday

输入输出示例:括号内为说明,无需输入输出

输入样例 (repeat=3) :

3
Tuesday
Wednesday
year

输出样例:

3
4
-1

编译器:GCC

代码

 
#include <stdio.h>
#include <string.h>int main()
{char day[7][10] = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" };//字符串数组int repeat;scanf("%d", &repeat); //输入repeatint i, j;char str[30];for (i = 0; i < repeat; i++){scanf("%s", &str); //输入字符串for (j = 0; j < 7; j++) //将输入字符串与字符数组day中每个字符串比较{if (strcmp(str,day[j]) == 0)//使用strcmp函数比较两个字符串是否相等{printf("%d\n", j+1);//输出结果为下标加1break;}                  }if(j == 7) //没找到的情况,输出-1printf("-1\n"); }return 0;
}

7-2 查找指定字符

本题要求编写程序,从给定字符串中查找某指定的字符。

输入格式:

输入的第一行是一个待查找的字符。第二行是一个以回车结束的非空字符串(不超过80个字符)。

输出格式:

如果找到,在一行内按照格式“index = 下标”输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出"Not Found"。

输入样例1:

m
programming

输出样例1:

index = 7

输入样例2:

a
1234

输出样例2:

Not Found

编译器:GCC

代码

#include <stdio.h>
int main()
{int i,k;int tip=0,max=0;char a,d;char b[81];scanf("%c",&a);getchar();//吃掉一个回车,否则结果会出错,回车会给下面的getsgets(b);k=0;for(k=0;b[k]!='\0';k++){ //for终止条件为遇到空字符if((a==b[k])&&(k>=max)){ //求该字符在字符串中所对应的最大下标,需满足字符相等与大于等于最大值max=k;   //将下标给maxtip=1;   //tip置为1}}if(tip==1){printf("index = %d",max);//找到最大值则输出max	}else{printf("Not Found"); //找不到最大值则输出Not Found	}return 0;
}

7-3 字符串逆序

输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。

输入格式:

输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。

输出格式:

在一行中输出逆序后的字符串。

输入样例:

Hello World!

输出样例:

!dlroW olleH

编译器:GCC

代码

 
#include<stdio.h>
int main()
{int i=0,j=0;char str[81];gets(str); //输入字符串while(str[i]!='\0')//终止条件为遇到空字符i++;             //求输入字符串长度ifor (j=i-1;j>=0;j--)//递减for循环 逆序输出每个字符putchar(str[j]);return 0;
}

7-4 统计大写辅音字母

英文辅音字母是除AEIOU以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。

输入格式:

输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:

输出在一行中给出字符串中大写辅音字母的个数。

输入样例:

HELLO World!

输出样例:

4

编译器:GCC

代码

 
#include <stdio.h>
#define MAXSIZE 81int func(char str[]); //函数声明,参数是数组形式,返回类型为整型int main(){char str[MAXSIZE];gets(str);  //输入字符串printf("%d",func(str));
}int func(char str[]){ //函数定义,参数是数组形式,参数是数组形式,返回类型为整型int count=0;for (int i = 0; str[i]!='\0'; i++)//for循环,取出字符串每个字符,终止条件为遇到空字符{if (str[i]>='B'&&str[i]<='Z'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U')//统计大写辅音字母{count++; //计数加1}}return count;//返回计算变量
}

7-5 字符串替换

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:

原字母对应字母
AZ
BY
CX
DW
XC
YB
ZA

输入格式:

输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:

输出在一行中给出替换完成后的字符串。

输入样例:

Only the 11 CAPItaL LeTtERS are replaced.

输出样例:

Lnly the 11 XZKRtaO OeGtVIH are replaced.

编译器:GCC

代码

#include<stdio.h>
int main()
{char a[81];gets(a); //输入字符串int i;for(i=0;i<81;i++){ //使用for循环,取除最后空字符以外的每个字符进行替换if(a[i]>='A'&&a[i]<='Z'){a[i]=155-a[i];}}puts(a);//输出字符串return 0;
}

http://www.lryc.cn/news/299460.html

相关文章:

  • 数据库基本操作2
  • BTC破5W+QAQ
  • Xubuntu16.04系统中修改系统语言和系统时间
  • 内网穿透 | 推荐两个免费的内网穿透工具
  • Android中代码生成图片高级部分
  • 计算机网络——09Web-and-HTTP
  • 【教程】MySQL数据库学习笔记(一)——认识与环境搭建(持续更新)
  • 软件测试-测试用例研究-如何编写一份优秀的测试用例
  • 计网day1
  • vLLM vs Text Generation Interface:大型语言模型服务框架的比较
  • [AIGC] 上传文件:后端处理还是直接阿里云OSS?
  • 速盾cdn:香港服务器如何用国内cdn
  • 深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】
  • IDEA中mybatis配置文件表名显示红色,提示 Unable to resolve table ‘xxx‘
  • Python基于大数据的电影预测分析系统
  • 【MATLAB】小波神经网络回归预测算法
  • 最新Burp Suite入门讲解
  • 【C++】模版初阶
  • Stable Diffusion 模型下载:DreamShaper(梦想塑造者)
  • GPT-4模型的创造力
  • 没用的计算器
  • 基于 Python 的大数据的电信反诈骗系统
  • 二、ClickHouse简介
  • C++ 11新特性之并发
  • jvm问题自查思路
  • 任意IOS16系统iPad/Iphone开启台前调度
  • LeetCode、452. 用最少数量的箭引爆气球【中等,贪心,区间问题】
  • 洛谷C++简单题小练习day10—umi的函数
  • 【Linux学习】线程互斥与同步
  • 前端开发:(三)CSS入门