- 论坛徽章:
- 0
|
大虾们好,我是一名菜鸟,马上就要考三级,可是上机有许多问题,希望得到大家的帮助。
例子:一道题中,要我编制函数DELWORD()分别删除一篇英语文章中的各行的空格,标点,以及序列是基数的单词。余下的单词倒置后仍然按行顺序存入数组XX中。
答案
- DELWORD()
- {int i,j,k;
- char word[21],*p;
- char str[80];
- for(i=0;i<maxline;i++)
- {memset(str,0,80);
- p=xx[i];
- j=0;
- k=0;
- memset(word,0,21);
- while(*P)
- {if(isalpha(*p))
- {word[j++]=*p++;
- if(*p)continue;}
- if(strlen(word))k++;
- if(k%2==0)strcat(str,strrev(word));
- j=0;
- memset(word,0,21);
- while(*p&&(!isalpha(*p)))p++;
- }
- strcpy(xx[i],str);
- }
- }
复制代码
疑问一:题中的I表示行,K表示单词个数,J表示每个单词内的字母?可以这样理解吗?
疑问二:对于while语句和if语句里面的条件可以略写吗?
while(*P) if(isalpha(*p) if(*p)
while(*p&&(!isalpha(*p))) 等详细的条件是什么?
疑问三:j=0;
memset(word,0,21);
while(*p&&(!isalpha(*p)))p++;
这三句怎么理解?为什么又定义j=o
为什么第二次定义 memset(word,0,21);
while里面的条件怎么理解?
因为我是自学的C,所以这道题有许多的疑问,大家可以帮忙一下,因为马上就考试了。在这里我谢谢了。 |
|