函数返回值应该是 char * 类型
#include<stdio.h> #include<string.h> void longestword(char x[],char lw[]); int main() { char a[80]; char lw[500]={0}; printf("请输入一行字符:\n"); gets(a); longestword(a,lw); printf("%s\n",lw); return 0; } void longestword(char x[],char lw[]) { int i, n, wlen, lwlen;//wlen保存单词的长度,lwlen保存扫描到最长单词的长度。 char w[80];//w保存扫描到的单词,lw保存扫描到最长的单词。 n = strlen(x); lwlen = wlen = 0; for (i = 0;i < n;i++) { if ((x[i] >= 'A'&&x[i] <= 'Z') || (x[i] >= 'a'&&x[i] <= 'z')) { w[wlen] = x[i]; wlen++; } else { if (wlen > lwlen) { strcpy(lw, w); lwlen = wlen; lw[wlen]='\0'; } wlen = 0; } } }