2.21 字符串(蓝桥杯)

2.21 字符串

测试练习

题目

问题描述

给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

输入格式:

第一行包含一个整数n。

第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。

第三行包含一个整数a,为待查找的数。

输出格式:

如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。

样例输入

6
1 9 4 8 3 9
9

样例输出

2

数据规模与约定

1 <= n <= 1000。

思路 代码

思路:

1.按照要求输入

2.写一个查找判断函数,其中设置一个标志flag为-1,若有则返回数组下标即位置信息,若无则返回原始flag

3.调用函数输出

代码
#include 

using namespace std;

void jg(int n,int a[],int x)

{

   int flag=-1;

   for(int i=1;i<=n;i++)

   {

​      if(x==a[i])

​      {

​        flag=i; cout<>n;

   int a[n];

   for(int i=1;i<=n;i++)

   {

​      cin>>a[i];

   }

   cin>>x;

   jg(n,a,x);

   return 0;

}

视频学习

笔记

视频名称以及链接:2019年蓝桥杯训练营(C++)2.1字符串

https://www.bilibili.com/video/BV1jE411g76D?p=2

学习心得:

Cstring标准库

\1.strcpy(s1, s2); 复制字符串 s2 到字符串 s1。

\2. strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。连接字符串也可以用 + 号

\3. strlen(s1);
返回字符串 s1 的长度。

\4.strcmp(s1, s2);
如果 s1 和 s2 是相同的,则返回 0;如果 s1s2 则返回值大于 0。

\5. strchr(s1, ch);
返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。

\6. strstr(s1, s2);
返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

观察字符串的形式的规律,有时候会和二维数组的行列有关(for嵌套循环的行列数)
另外资料:C++基础之string类型
string 对象的定义和初始化

string s 默认构造的s为空串
string s2(s1); 将 s2 初始化为 s1 的一个副本
string s3(“value”); 将 s3 初始化为一个字符串字面值副本
string s4(n, ‘c’); 将 s4 初始化为字符 ‘c’ 的 n 个副本

使用 getline 读取整行文本
另外还有一个有用的 string IO 操作:getline。这个函数接受两个参数:一个输入流对象和一个 string 对象。getline 函数从输入流的下一行读取,并保存读取的内容到不包括换行符。和输入操作符不一样的是,getline 并不忽略行开头的换行符。只要 getline 遇到换行符,即便它是输入的第一个字符,getline 也将停止读入并返回。如果第一个字符就是换行符,则 string 参数将被置为空 string。
getline 函数将 istream 参数作为返回值,和输入操作符一样也把它用作判断条件。例如,重写前面那段程序,把每行输出一个单词改为每次输出一行文本:
int main() { string line; while (getline(cin, line)) cout << line << endl; return 0; }
fgets(string,length,stdin),此方法默认加一个“\0”换行符

代码

题目

问题描述

利用字母可以组成一些美丽的图形,下面给出了一个例子:

ABCDEFG

BABCDEF

CBABCDE

DCBABCD

EDCBABC

这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

输入格式

输入一行,包含两个整数n和m,分别表示你要输出的图形的行数的列数。

输出格式

输出n行,每个m个字符,为你的图形。

样例输入

5 7

样例输出

ABCDEFG
BABCDEF
CBABCDE
DCBABCD
EDCBABC

思路

1.观察到字母的排序与行列数的差的绝对值有关

2.cout的强制类型转换,将ASII转换成字符型

代码
#include 
#include 
using namespace std;

int main()
{
	int m,n;
	cin>>n>>m;
	char a[n][m];
	for(int i=0;i

你可能感兴趣的:(蓝桥杯,字符串)