字符串Awcing

1,字符数组输入/输出

char str[1000];

cin >>str;  //输入字符串时,遇到空格或回车就会停止

scanf("%s",str)//输入字符串时,遇到空格或回车就会停止

读入一行字符串,包括空格

fgets(str,n,stdin)//str为数组名,n为要输入多少个字符,    stdin以后解释

cin.getline(a,n) //a为数组名,n为要读入的字符数组长度

getline(cin,str)//str 必须是 string类型,即string str 这么定义

fgets函数及其用法,C语言fgets函数详解_aa804738534的博客-CSDN博客_c语言fgets函数用法

cout <<str<<endl;

printf("%s",std);

puts(str);  //这个必须有头文件    #include <cstring>.这个输出也包括了换行符

#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
char str1[1000];
int main(){
	cin >>str1;
	printf("下面是输出:\n");
	puts(str1); 
	printf("%s",str1);
    printf("%s",str1);
	
	return 0;
}

下面是输出:
abcd
abcdabcd

 2,字符串函数

头文件:#include <cstring>

字典序比较方式:(ASCII码依次比较)

3,其他

一个关于时间复杂度的问题 

我们遍历整个字符串,使用 i<strlen(str)这个条件判断

如果把长度计算好,i<len作为判断条件 

 原因:strlen()函数,里面有循环语句, i<strlen(str)相当于双重循环

一个关于过滤回车的问题(使用scanf会出现,cin没有此问题)

#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
char str1[100];
int main(){
	char str;
	scanf("%s",str1);
	scanf("%c",str);//再读入一个字符 
	printf("str1:%s\n",str1);
	printf("str:%c",str);	
	return 0;
}

输入:
abc
%
输出:
str1:abc
str:

原因,str把我们的回车输入进去了

解决:

#include <cstring>
#include <cstdio>
#include <iostream>
using namespace std;
char str1[100];
int main(){
	char str;
	scanf("%s",str1);
	getchar(); //过滤空格
	scanf("%c",&str);//再读入一个字符 
	printf("str1:%s\n",str1);
	printf("str:%c",str);	
	
	return 0;
}

输入:
abc
%
输出:
str1:abc
str:%

4,string   

#include <string>
#include <cstdio>
#include <iostream>
#include <cctype>
//#include <bits/stdc++.h>  万能头文件,可以代替C++中大部分头文件,所以可以把以上头文件换成这一个 
using namespace std;
int main(){
	string str;
	cin >>str;
	char c='A';
	cout <<str.substr(0,4)<<endl;//substr(i,len)   i表示起始位置,len表示长度      
	cout <<str.substr(4)<<endl;//len 可胜率,则表示终止位置是结尾 
	cout <<str.find('p')<<endl;//从前往后寻找指定字符的下标位置     找到返回 第一个字符的索引
     没找到返回   string::npos
	cout <<str.rfind('p')<<endl;//从后往前寻找指定字符的下标位置
	cout <<str.size()<<endl;//字符串长度(不包括'\0') 
	cout <<str.empty()<<endl;//判断是否为空字符串,是返回1,不是返回0 
	cout <<(char)towlower(c)<<endl;//#include <cctype>  转化为小写字母
	cout <<str.c_str();//.c_str() 相当于返回字符数组首地址 
	return 0;
}

输入:
philosophy
输出:
phil
osophy
0
7
10
0
a
philosophy

#include<bits/stdc++.h>介绍_蔡尼玛的博客-CSDN博客_#include<bits/stdc++.h>

tolower()函数_蔡尼玛的博客-CSDN博客_tolower函数

printf函数输出字符串是针对char *的,即printf只能输出c语言的内置数据类型,而string不是c语言的内置数据类型。如需输出string对象中的字符串,可以使用string的成员函数c_str(),该函数返回字符串的首字符的地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值