字符数组
字符数组是存储字符型数据的数组。
字符型数组定义: char a[5]; 表示定义字符型数组a,有a[0]-a[4] 5个可用的空间
字符型数组初始化: char a[5]={‘a’,’b’,’c’,’d’,’e’};
字符串
-
字符串常量的定义:
用双引号括起来的0个或多个字符组成的序列,比如: -
字符串结尾的标志:
在内存中存储的形式,以‘\0’结束,例如,将字符串hellow存储到数组中: -
字符串的定义和初始化:

4.字符串的输入
(1)不含空格的输入
使用for循环输入
cin>>数组名;
(2)含空格的输入
gets(数组名);
5.字符串的输出
使用for循环输出
cout<<数组名;
puts(数组名);
输入一个字符串(可包含空格)统计组成字符串各类型的个数,并输出所有特殊字符。
[样例输入] abSD F12¥#% v
[样例输出]
¥ # %
大写:3
小写:3
数字:2 空格:2
#include<iostream>
using namespace std;
int main()
{
// 第一步:定义字符数组存放字符串,定义四个变量分别来统计大写 ,小写,数字和空格四种类型的个数,并输入字符串。
char a[20];
int d=0,x=0,s=0,k=0,i=0;
gets(a);
// 第二步:在组成字符不为结尾标志\0的情况下进行循环判断,每个字符属于是什么类型,则该类型统计+1
while(a[i]!='\0')
{
if(a[i]>='A' && a[i]<='Z') d++;
else if(a[i]>='a' && a[i]<='z') x++;
else if(a[i]>='0' && a[i]<='9') s++;
else if(a[i]==' ') k++;
else cout<<a[i]<<" ";
i++;
}
// 第三步: 输出各类型的个数
cout<<"大写:"<<d<<endl<<"小写:"<<x<<endl<<"数字:"<<s<<endl<<"空格:"<<k;
return 0;
}
字符串专用的处理函数
- strlen() 函数
【作用】用于计算字符串的长度(不含\0)
【格式】strlen(字符数组名);
输入一串内容(长度不超过108 ),反向输出。
[样例输入]12345
[样例输出]54321
#include<iostream>
using namespace std;
int main()
{
char a[101];
int n,i;c
in >> a;
n=strlen(a);
for(i=n-1; i>=0; i--)
{
cout << a[i];
}
return 0;
}
2.strcat( )函数
【作用】将b字符串连接到a字符串的后面 (因此a字符串要足够大)
【格式】strcat(a, b)
#include <iostream>
#include <cstring>
using namespace std;
int main( )
{
char a[20] = "Hello";
char b[6] =“world";
cout<<strcat(a,b)<< endl;
return 0;
}
3.strcpy( )函数
【作用】将b字符串复制到a里,包含’\0’
【格式】strcpy(a, b)
#include <iostream>
#include <cstring>
using namespace std;
int main ()
{
char a[20] =“Hello”;
char b[6] =“world”;
cout << strcpy(a,b) << endl;
return 0;
}
4.strcmp( )函数
【作用】比较两个字符串大小
【格式】strcmp(a, b)
0:代表相等
1:代表a字符串大于b字符串
-1:代表a字符串小于b字符串
#include <iostream>
#include <cstring>
using namespace std;
int main( )
{
char a[20] =”Hellow”;
char b[6] =“world';
cout<<strcmp(a,b)<<endl;
return 0;
}
字符串翻转
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入:只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出:翻转每一个单词后的字符串,单词之间的空格需与原文-致。
[样例输入] hello world
[样例输出] olleh dlrow
// 第一步:定义字符型数组a ,存储输入的字符串,定义整型变量lena, start, count,分别表示
字符串的长度,单词翻转开始的位置, 对需要输出空格的位置进行标记,定义循环变量i,j,k,输
入含空格的字符串并计算字符串的长度;
char a[500];
int len,i,start = 0,count = e,j,k = 0;
gets(a);
len = strlen(a);
// 第二步:使用for循环对字符串进行遍历,如果遇到空格或者字符串的最后-个单词 ;使用if语句进行判断,
如果是单词中间的空格,则从空格的前一个开始倒序输出, 如果是字符串的的最后一个字母,则从当前字母
开始倒序输出。
for(i=0;i<len;i++){
if(a[i] = =‘ ’|| i = = len-1){
count++; //标记需要输出空格
if(i == len-1) //确定开始倒序输出的位置
k =i;
else
k =i-1; }
//从单词的最后一个字母倒序输出
for(j = k; j >= start; j--){
cout << a[j];}
}
if(count == 1){
//判断输出空格
cout<<"";
count =0;
}
start = i+1; //下一个单词从空格后的位置开始
}
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




