L1-054 福到了 (15 分)

	char s[N][N];
	for(int i = 0 ; i < n ; i ++)
		for(int j = 0 ;j < n ; j ++)
			cin >> s[i][j];
			
	for(int i = 0 ; i < n ; i ++)
	{
		for(int j = 0 ;j < n ; j ++)
			cout <<  s[i][j];
		cout << endl;
	}

注意这代码在读入时是不会读入空格的
在这里插入图片描述
还有就是这只能存3*3个字符,也即是前九个字符,多余的输入就不会被输出;还有在打印图像中注意输出换行;

cin,getline,cin.getline具体使用博客,后面俩个可以读入空格
C语言二维字符数组的输入,字符串的输出以\0为结尾
二维字符的读入2
getchar,清除缓存
把所有的内容都输入完成并且按下了Enter键后,我们的输入才被送进去了输入缓冲区
7-2 查找单价最高和最低的书籍 :
结构体的使用,这里就是要求单价和书名;如果求出两个变量;如果咱只定义maxn 求出单价的话;那对应的书的名字就不好求了;所以这了的maxn,可以定义没指定的那个结构体数组;struct是一个结构体后面要加;
带有空格的输入模板:

就是在string 定义是如何求长度?
可以用.size() 或者是 .length();
如果用字符数组输入, 求长度只能用strlen函数
注意这里求的数组大小不是原本规定是多大就是多大, 是有多少, 就算多少;

eg:
在这里插入图片描述

#include <iostream>
using namespace std;
#include <algorithm>
#include <string.h>

int n;
struct book{
    double price;
    char name[32];
}b[10];

bool cmp(book a,book b)
{
    return a.price < b.price;
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++) 
    {
        getchar();
        cin.getline(b[i].name,32);
        cin>>b[i].price;
        
    }
    sort(b,b+n,cmp);
    for(int i=0;i<n;i++)
        printf("%s %.1f\n",b[i].name,b[i].price);
    return 0;
    
}
char name[20];
 cin.getline(name, 20); 
 cout << name << endl;

这个只能输出一串;怎么输出两串?

string name[20];
#include<iostream>
#include<cstring>
using namespace std;
/*
$ 9
 @  @@@@@    
@@@  @@@ 
 @   @ @ 
@@@  @@@ 
@@@ @@@@@
@@@ @ @ @
@@@ @@@@@
 @  @ @ @
 @  @@@@@
*/
int main(){
	int n,flag = 0;
	char s;
	string a[110];
	scanf("%c %d",&s,&n);
	getchar();//必须有
	for(int i=0;i<n;i++){
		getline(cin,a[i]);//每次输入一行	
	}
	for(int i=0;i<n;i++){//将字符改变成所需要的字符
		for(int j=0;j<n;j++){
			if(a[i][j] != ' '){
				a[i][j] = s;
			}else {//必须有空格
				a[i][j] = ' ';
			}
		
		}
	}
	for(int i=0;i<n;i++){//判断是否相同
		for(int j=0;j<n;j++){
			if(a[i][j] != a[n-i-1][n-j-1]){
				flag = 1;
			}
		}
	}
	if(flag == 0){
		printf("bu yong dao le\n");
	}
	for(int i=n-1;i>=0;i--){//倒着输出
		for(int j=n-1;j>=0;j--){
			printf("%c",a[i][j]);
		}
		printf("\n");
	}
	return 0;
}

后面跟字符串的增、删, 查, 改;
字符串各种函数集合
字符串函数

#include <iostream>
#include <string>
using namespace std;
int main()
{
     string s1="string of many words.",s2="many";
//s1="string of many words.和"s1("string of many words.")等价。都调用了string类构造函数。
     int i;
     cout<<s1<<endl;
     i=s1.find(s2); 
//调用find函数,返回s2在s1中的位置。在这里返回10,因s1在s2起始位置是10
     s1.replace(i,4,"few");//调用replace函数用字符串few来替换s1中的4个字符。i的值就是find的返回值,
//many在字符串中的位置,并且表示替换从这该位置开始。
     cout<<s1<<endl;
     s1.erase(i,4);   
//删除了s1字符串中从第10个开始的4个字符
     cout<<s1<<endl;
     s1.insert(i,"simple ");  
//把字符串"simple"插入字符串s1的第10个字符的位置。
     cout<<s1<<endl;
 }

//上面倒着来说是增删改查
cin.getline(name, 32);
//这里只是一行读取;name必须市char类型, 不能是string
//后面一定要有长度

//这个是结构体的,输入所以个人理解cin.getline适合读入一维的
	for(int i=0;i<n;i++)
	{
		getchar(); //换行用getchar()吸收 
		cin.getline(b[i].name,31);//后面必有大小
		cin>>b[i].price;//输出格式;
		printf("%s %.1f\n",b[i].name,b[i].price);
	}

在这里插入图片描述
在这里插入图片描述

包含空格的二维字符数组读入:

	string a[110];
	scanf("%c %d",&s,&n);
	getchar();//必须有
	for(int i=0;i<n;i++){
		getline(cin,a[i]);//每次输入一行	
	}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海波东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值