C++字符串题基础(进阶请看下一个文章)
打印小写字母表
#include<iostream>
#include<string.h>
#include<iomanip>
#include<stdio.h>
#include<cmath>
using namespace std;
int main()
{
char n='a';
for(int i=1;i<=13;i++)
{
cout<<n;
n++;
}
cout<<endl;
for(int i=1;i<=13;i++)
{
cout<<n;
n++;
}
cout<<endl;
n='z';
for(int i=1;i<=13;i++)
{
cout<<n;
n--;
}
cout<<endl;
for(int i=1;i<=13;i++)
{
cout<<n;
n--;
}
cout<<endl;
return 0;
}
时间的差
#include<iostream>
#include<string.h>
#include<iomanip>
#include<stdio.h>
#include<cmath>
using namespace std;
int main()
{
char a[2000],b[2000];
int c=0;
cin>>a;
cin>>b;
int am=0;
int bm=0;
int la=strlen(a);
int lb=strlen(b);
am=am+(a[1]*10+a[2])*3600+(a[4]*10+a[5])*60+a[7]*60+a[8];
bm=bm+(b[1]*10+b[2])*3600+(b[4]*10+b[5])*60+b[7]*60+b[8];
cout<<bm-am;
return 0;
}
数字和
#include<stdio.h>
#include<stream>
#include<string.h>
int main()
{
char a[205];
int i,b[205],l,sum=0;
cin<<a;
l=strlen(a);
for(i=0;i<l;i++)
{
b[i]=a[i]-'0';
sum=sum+b[i];
}
cout<<sum;
return 0;
}
国王的魔镜
#include<stdio.h>
#include<string.h>
int main()
{
int n;
cin>>n;
while(n--)
{
char a[100];
int l,i,b;
gets(a);
l=strlen(a);
if(l%2!=0)
{
cout<<1;
}
else
{
while(l>1&&l%2==0)
{
b=0;
for(i=0;i<l/2;i++)
{
if(a[l/2-i-1]==a[l/2+i])
{
b++;
}
}
if(b==l/2)
{
l/=2;
}
else
break;
}
cout<<l;
}
}
return 0;
}
简单解密
#include<stdio.h>
#include<string.h>
using namespace std;
char s[100];
int main()
{
gets(s);
for (int i = 0; i < strlen(s); i++)
{
if (s[i] >= 'A' && s[i] <= 'E')
{
s[i] += 21;
}
else if (s[i] >= 'F' && s[i] <= 'Z')
{
s[i] -= 5;
}
}
cout<<s;
return 0;
}
查字典码中最小的字符串
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char s[100],min[100];
int n;
cout<<n;
gets(s);
strcpy(min,s);
for(int i=1;i<n;i++){
gets(s);
if(strcmp(min,s)>0){
strcpy(min,s);
}
}
cout<<min;
return 0;
}
出现最多的小写字母
#include<iostream>
using namespace std;
int a[200];
string s;
int main() {
cin>>s;
for(int i=0; i<s.size(); i++) {
a[s[i]]++;
}
int ma=97;
for(int i=98; i<=122; i++) {
if(a[i]>=a[ma]) {
ma=i;
}
}
char c=ma;
cout<<c;
return 0;
}
判断是否构成回文
#include<iostream>
using namespace std;
int main()
{
char ch,letter[101];
cin>>ch;
int i=0,j=1;
while(ch!='.')
{
++i;
letter[i]=ch;
cin>>ch;
}
while((j<i)&&(letter[j]==letter[i]))
{
--i;++j;
}
if(j>=i) cout<<"yes"<<endl;
else cout<<"no"<<endl;
return 0;
}
移动个空格
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char a[1000];
cin.getline(a,1000);
bool temp = true;
int sign = 0;
int i = 0;
while(i != 1000)
{
if(a[i] == ' ' && temp == true)
{
temp = false;
sign = i;
}
if(a[i] !=' ' && temp == false)
{
temp = true;/
a[sign] = a[i];
a[i] = ' ';
i = sign;
}
i++;
}
cout<<a;
return 0;
}
删除*
#include<stdio.h>
#include <string.h>
main()
{
int i,j,k=0,c;
char a[100]={0},
b[100]={0},
d[100]={0},
e[100]={0};
gets(a);//输入
c=strlen(a);//计算长度
for (i=0;a[i]=='*';i++)
{
b[i]=a[i];
}
for (j=c-1;a[j]=='*';j--)
{
d[k++]=a[j];
k=0;
for(j=0;a[j]!='';j++)
{
if (a[j]!='*')
e[k++]=a[j];
}
/*连接并输出*/
strcat(b,e);
strcat(b,d);
puts(b);
}
字符串反码
#include<stdio.h>
#include<string.h>
int main()
{
char s1[80];
int m='a'+'z',n='A'+'Z';
while(1)
{
gets(s1);
if(strcmp(s1,"!")==0)
return 0;
char *p=&s1[0];
while(*p!='')
{
if(*p>='a'&&*p<='z')
printf("%c",m-*p);
else if(*p>='A'&&*p<='Z')
printf("%c",n-*p);
else
printf("%c",*p);
p++;
}
printf("n");
}
return 0;
}
看完动漫要几天?不会
时钟旋转不会
字符串加密
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
while(gets(str)!=NULL)
{
int i,length=0;
length=strlen(str);
for(i=0;i<length;i++)
{
if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z')
str[i]=(int)str[i]+1;
if((int)str[i]>122)
str[i]=(int)str[i]-57;
}
puts(str);
printf("n");
}
return 0;
}