C语言(TC 2.0)一个有关字符串移位的问题!求教!

来源:百度知道 编辑:UC知道 时间:2024/05/25 00:05:33
输入一行字符,将其中的字母循环左移四位,数字加二再模十,空格删除,其它符号不变。先将结果保存在数组中,再输出到屏幕上。
例:输入:9527:In God We Trust
输出:1749:EjCkzWaPnqop
输入:XXXX:”Glmre!” (XXXX表示学号后四位)
输出:ZZZZ:”China!”

char str[1000];

int main()
{
int i=0;
int l,k;
gets(str);
l=strlen(str);
while(str[i])
{
if(isdigit(str[i]))
str[i]=(str[i]-'0'+2)%10+'0';
if(isalpha(str[i]))
{str[i]=str[i]-4;
if(isalpha(str[i]));
else str[i]=str[i]+26;
}
i++;
}
i=0;
while(str[i])
{
if(str[i]==' ')
for(k=i;k<l;k++)
str[k]=str[k+1];
l=strlen(str);
i++;
}
printf("%s",str);
getchar();
}

PS:什么叫循环左移?例子是不是有问题?