1.读入两个字符串s1和s2,将s2中的全部字符复制到字符数组s1中去。要求不使用strcpy函数,并保证字符串末尾的’\0’标识符同时被赋值。
#include <stdio.h>
void main()
{
int i;
char s1[30],s2[30];
gets(s1);
gets(s2);
for(i=0;i<30;i++)
{
s1[i]=s2[i];
}
puts(s1);
}
2.读入两个字符串s1和s2,比较这两个字符串。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。输出的非零值应该是相比较的两个字符串第一个不相同位置的字符ASCII差值,例如”And”和”Aid”比较,根据第2个字符的比较结果,应输出5。
要求不要使用strcpy和strcmp函数。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s1[101];
char s2[101];
gets(s1);
gets(s2);
int long1=strlen(s1);
int long2=strlen(s2);
if(long1>long2)
{
int x;
for(int i=0;i<long2;i++)
{
if(s1[i]!=s2[i])
{
x=abs(s1[i]-s2[i]);
printf("%d\n",x);
break;
}
}
}
else if(long1==long2)
{
int x=0;
printf("%d\n",x);
}
else if(long1<long2)
{
int x;
for(int i=0;i<long1;i++)
{
if(s1[i]!=s2[i])
{
x=-abs(s1[i]-s2[i]);
printf("%d\n",x);
break;
}
}
}
return 0;
}
3.有一行电文,已经按照如下规则译成了密码:
A->Z a->z
B->Y b->y
C->X c->x
… …
… …
即第1个字母变换成第26个字母,第i个字母变换成第(26-i+1)个字母。非字母字符不变。给定一段密码,请将其译成原文并输出。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s1[101];
char s2[101];
gets(s1);
int longs=strlen(s1);
for(int i=0;i<longs;i++)
{
if(s1[i]>='A'&&s1[i]<='Z')
{
s2[i]='A'+'Z'-s1[i];
}
else if(s1[i]>='a'&&s1[i]<='z')
{
s2[i]='a'+'z'-s1[i];
}
else
s2[i]=s1[i];
}
puts(s2);
return 0;
}
4.输出如下图案:
* * * * *
请使用字符数组的方式完成本题
#include <stdio.h>
#include <stdlib.h>
#define r 15
#define c 15
int main()
{
char chars[r][c]={
"* * * * *",
" * * * * *",
" * * * * *",
" * * * * *",
" * * * * *"};
for(int i=0;i<r;i++)
{
printf("%s\n",chars[i