C语言遇见程序难题.拜托各位高手了

以下程序的输出结果是
#include<ctype.h>
space(char *str)
{ int i,t; char ts[81];
for(i=0,t=0;str[i]!=’\0’;i+=2)
if (!isspace(*str+i)&&(*( str+i)!=’a’))
ts[t++]=toupper(str[i]);
ts[t]=’\0’;
strcpy(str,ts);
}

main()
{ char s[81]={“a b c d e f g”};
space(s);
puts(s);
}

A abcdefg B bcde C ABCDE D BCDEFG
请问 if (!isspace(*str+i)&&(*( str+i)!=’a’)) 这句话中isspace没定义表示的是什么? 有什么作用?
还有就是 ts[t++]=toupper(str[i]); 语句中toupper 也没用定义.也不知道表示什么作用

isspace:

原型:extern int isspace(int c);

用法:#include <ctype.h>

功能:判断字符c是否为空白符

说明:当c为空白符时,返回非零值,否则返回零。
空白符指空格、水平制表、垂直制表、换页、回车和换行符。

// isspace.c

#include <syslib.h>
#include <ctype.h>

main()
{
char s[]="Test Line 1\tend\nTest Line 2\r";
int i;

clrscr(); // clear screen
for(i=0;i<strlen(s);i++)
{
if(isspace(s[i])) putchar('.');
else putchar(s[i]);
}
getchar();
return 0;
}

toupper :

原型:extern int toupper(int c);

用法:#include <ctype.h>

功能:将字符c转换为大写英文字母

说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的值。

举例:

// toupper.c

#include <syslib.h>
#include <ctype.h>

main()
{
char *s="Hello, World!";
int i;

clrscr(); // clear screen
printf("%s\n",s);
for(i=0;i<strlen(s);i++)
{
putchar(toupper(s[i]));
}

getchar();
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-09
这都是库函数,在CTYPE.H中有定义