请详细解释下面C语言的意思

来源:百度知道 编辑:UC知道 时间:2024/05/24 12:10:34
void StrOL(void)
{
int i,j,k,strl,l;char c;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
{
c=xx[i][j];
if ((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c==' ') ;
else xx[i][j]=' ';
}
for(l=0;l<maxline;l++)
{
char ch[80]={0};
char pp[80]={0};
strl=strlen(xx[l]);
i=strl-1;
k=1;
while(1)
{
while(((xx[l][i]>='a'&&xx[l][i]<='z')||(xx[l][i]>='A'
&&xx[l][i]<='z'))&&i>=0)
{
for(j=k;j>=0;j--)
pp[j+1]=pp[j];
pp[0]=xx[l][i];
k++;i--;
}
strcat(ch,pp);
strcpy(pp, "");
k=1;
if(i==-1)
break;
while((xx[l][i]<'A'||xx[l][i]>'z')&&i>=0)
{
for(j=k;j>=0;j--)
pp[j

这是一个字符串颠倒的程序.
如:abcde,最后改为edcba.当然程序里还加了一些其它的部分.如果如果字符串里有非字母的全都改为空格。如"a1b,c",这样的字符串,会改为"c b a"来存储
下面是一个大概的注释:
void StrOL(void)
{
int i,j,k,strl,l;char c;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
{
c=xx[i][j];
if ((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c==' ') ; //如果是A-Z或a-z或' '不变
else xx[i][j]=' '; //否则将非字母改成空格
}
//以上部分,处理整个字符串格式,由两个FOR组成
//以下部分为颠倒字符串
for(l=0;l<maxline;l++)
{
char ch[80]={0}; //颠倒后的结果字符串用这个来存
char pp[80]={0}; //颠倒过程中由这个来存储中间值
strl=strlen(xx[l]); //获得字符串的长度
i=strl-1; //用于指向最后一个字符的下标
k=1; //这个值用来定位从字符串后面取回来的数存放在数组位置

while(1)
{
while(((xx[l][i]>='a'&&xx[l][i]<='z')||(xx[l][i]>='A' &&xx[l][i]<='z'))&&i>=0)
{ //当这是一个字符时,并