0
点赞
收藏
分享

微信扫一扫

字符串专题


1.字符串I/O

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
using namespace std;
int main(){
char s[1000];
//cin>>s;
scanf("%s",s);//读到空格/换行符结束输入,注意区别
//scanf("%s %s",s1,s2)//空格数固定已知也可以这样做

//ps:char s[]数组也可以循环一个个输入字符
cout<<s;
//输出也可以用 printf("%s",s.c_str());//c_str()将string型转为字符数组输出
system("pause");
return 0;
}

cin和cout在iostream头文件中,而不是stdio.h。
错误输出方法:printf("%s",s);

字符串专题_字符串

2.getline读空格

#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
using namespace std;
int main(){
string s;
cin>>s;
//getline(cin,s);//都可以,如果字符串有空格得用getline
cout<<s;

system("pause");
return 0;
}

如果是char型数组str[100],也可以用getline:

char str[100];
cin.getline(str,100)

3.字符数组2种初始化

(1)和普通数组一样逐个赋值:char str[15]={'g','m','s'};

(2)直接通过字符串初始化(只有初始化可以,其他地方不能这样直接赋值整个字符串):
char str[15]="guomiansheng"
打印则用for循环逐个;printf("%c",str[i])

4.常用函数

有几个在string.h头文件下的常用的处理字符数组的函数:
(1)strlen()统计字符数组中第一个\0前的字符的个数;
(2)strcpy(字符数组1,字符数组2)是把字符数组2复制给字符数字1,注意这里的复制包括了结束符\0
(3)strcat(字符数组1,字符数字2)能把字符数组2接到字符数组1的后面。

5.string用scanf读时

在用scanf读取时,必须声明长度。不声明长度,直接scanf会出现运行时错误。

#include <stdio.h>
#include <string>
using namespace std;
int main()
{
string a;
a.resize(100); //需要预先分配空间
scanf("%s", &a[0]);
puts(a.c_str());
return 0;
}

6.

 

 

举报

相关推荐

0 条评论