C++基础语法四-数组之前


看了一下手里的书,在数组之前讲了一些其他的东西,就跟着写一下吧,也有便于以后的数组的理解。

一、C-串

1、c-串

这个东西是从C语言里延伸过来的,其表现形式是:
‘H’ ‘e’ ‘l’ ‘l’ ‘o’ 0
就是说他们是以单引号括起来的字符序列,最后再加上一个0
所以说,c-串的空间长度为字符串长度加一。
就是
char b[6]=“hello”
虽然我们定义的是char,但是是指的里面hello的类型。整体C-串则是char*,指针类型。

2、字符指针与字符数组

指针是表示内存空间位置的类型,字符指针就是所指的空间位置上的值,当做字符来操作的类型。

例如·:

char* str="hello";
cout<<*str;
cout<<str;

输出结果:h/hello
str是字符指针变量,* str是字符指针变量的间接引用。即,若str指向“hello”的首地址,则* str表示该地址代表的空间上的值——‘h’

输出字符指针就是输出C-串。所以输出str时,是从h的地址符开始,输出所有字符直到遇到0。

针对C-串,C++有如下:

#include<iostream>
using namespace std;
int main()
{
	char* a="hello";
	char* b="123";
	char c[20];
	strcpy(a,c);//复制
	cout<<(strcmp(c,a) ==0?"":" not")<<"equal\n";//比较
	cout<<strcat(c,a);//连接
	cout<<strrev(c,a);//倒置
	cout<<(strstr(a,"ell") ? "" : "not")<<"found"//查找串
	cout<<(strchr(a,‘c')  ? "" : "not")<<"found"//查找字符
}

可能说为啥不引用< string.h>因为C++中的< iostream>已经包含了string.h。

3、string

再来说一下string串,
他的空间是自动生成的,不用像C-串一样先定长度。
操作起来也更简便

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	string a,s1="hello";
	char* s2="123";
	a=s1;//复制
	cout<<(a==s1?"":" not")<<"equal\n";//比较
	cout<<a+s2;//连接
	reverse (a.begin(),a.end());//倒置
	cout<<(s1.find("ell")!=-1 ? "" : "not")<<"found"//查找串
	cout<<(s1,find(‘c')!=-1  ? "" : "not")<<"found"//查找字符
}

4、string与C-串的输入输出

如想输入:
Hello,How are you?
可通过循环读入单词将内容输入到变量中:
string形式:

for(string s;cin>>s);
	cout<<s<<" ";
cout<<endl;

或者:
c-串形式

for(char a[20];cin>>a;)
	cout<<a<<" ";
cout<<endl;

cin>>的读入方式总是将其前导的空格滤掉,将单词读入,当遇到空格时结束本次输入。

但是也可以通过getline一次性写入

string s;
getline(cin,s);
cout<<s<<endl;
//——————————————
//或者
char a[40];
cin.getline(a,40);
cout<<a<<endl;

需要注意的是这两种方法比用字符指针或字符数组遍历的方法好多了。

下篇更数组正传
嘿嘿嘿

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值