本帖最后由 Moebius 于 2014-7-6 23:06 编辑
#include <stdio.h>
#include <string.h>
int main()
{
char c[100];
printf("请输入英文名句子:\n");
scanf("%s",&c);
for(int i=0;c!='\0';i++)
{ //A~Z 为65~90 a~z 为97~122
if((c>=65 && c<=87)|| (c>=97 && c<=119))
{
for(int j=strlen(c);j>i;j--)
{
c[j+1]=c[j-1];
}
c=c+1;
c[i+1]=c+2;
c[i+2]=c+3;
}
if(c==88)
{
for(int j=strlen(c);j>i;j--)
{
c[j+1]=c[j-1];
}
c=c+1;
c[i+1]=c+2;
c[i+2]=97;
}
if(c==89)
{
for(int j=strlen(c);j>i;j--)
{
c[j+1]=c[j-1];
}
c=c+1;
c[i+1]=97;
c[i+2]=98;
}
if(c==90)
{
for(int j=strlen(c);j>i;j--)
{
c[j+1]=c[j-1];
}
c=97;
c[i+1]=98;
c[i+2]=99;
}
if(c==120)
{
for(int j=strlen(c);j>i;j--)
{
c[j+1]=c[j-1];
}
c=c+1;
c[i+1]=c+2;
c[i+2]=65;
}
if(c==121)
{
for(int j=strlen(c);j>i;j--)
{
c[j+1]=c[j-1];
}
c=c+1;
c[i+1]=65;
c[i+2]=66;
}
if(c==122)
{
for(int j=strlen(c);j>i;j--)
{
c[j+1]=c[j-1];
}
c=65;
c[i+1]=66;
c[i+2]=67;
}
}
for(int i=0;i<strlen(c);i++)
{
printf("%c\n",c);
}
return 0;
}
这段代码运行后出现 segmentation fault: 11 是怎么回事? |
|