字符串,字符数组

时间:2020-02-01 00:40:51   收藏:0   阅读:87

字符数组/字符串

字符类型

字符类型是能存字符的数据类型,除了存储\(ASCII\)表里面的数组以外,还能存储类似"\n","\t"的转义字符。比如:"\n"是换行,"\t"是制表符(不懂就自己试试)

char a = '\n';
cout << 1 << a << 1;

这个程序的输出就是

1

1

也就是说\(a\)就代表了换行。记得 printf("%d\n",x)的含义吗?这里的\n 和前面的是同样的意思。

字符串

字符串是指一串字符,字符串的实质就是数组。需要特别注意的是,"txtxt"的字符串存储就是"txtxt\0",其中,\0代表一个字符串的结尾。

输入方法:

直接读入一个没有空格的字符串:

string a;
cin >> a;

字符数组

就是字符类型的数组。和字符串有什么区别呢?一点区别

char a[1000];
string b;

以上两种声明方法有什么区别?基本没有。

char a[1000];
string b;
b[0] = 'f';

上面这种操作就是完全可以的。简单来讲:字符串类似字符数组。他们有两点不同之处:

‘\0‘到底有什么用?既然是表示字符串的结尾,那么输出的时候只要输到‘\0‘,输出就停止。

还有问题?看下面的代码。

\(code1\)

string a = "lcez";
a[0] = 'k';
cout << a << endl;
a = "hh";
cout << a << endl;

\(out\)

kcez
hh

\(code2\)

char a[1000];
a[0] = a[1] = 'y';
cout << a << endl;
a[2] = a[3] = a[4] = a[5] = 'x';
cout << a << endl;
a[3] = '\0';
cout << a << endl;

\(out\)

yy
yyxxxx
yyx

读入一个有空格、用回车隔开的字符串。这里其实有直接实现的语句,但是不好记,所以我们就直接暴力

string a,b;
char c = getchar();\\这个getchar需要记住,除了这个以外都不用记
\\getchar是指读入一个字符
int tot = 0;
while(c != ' '){
    a[tot] = c;
    c = getchar();
    tot++;
}
a[tot] = '\0';
tot = 0;
while(c != ' '){
    b[tot] = c;
    c = getchar();
    tot++;
}
b[tot] = '\0';
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!