自定义函数问题
9. 编写一个函数实现在一个字符串中查找最长的单词的位置,假定字符串中只有字母与空格,空格用来隔开单词。函数原型: int maxlenwordpos(char * str);
请问上面这道题该怎么写? 本帖最后由 jackz007 于 2021-1-5 11:47 编辑
// 返回值为最长字符串在 str 中的位置索引
int maxlenwordpos(char * str)
{
int c , d , i , n ;
for(c = d = i = n = 0 ; str ; i ++) {
if(str == ' ') {
if(c > n) {
n = c ;
d = i - c ;
}
c = 0 ;
} else {
c ++ ;
}
}
if(c > n) d = i - c ;
return d ;
} jackz007 发表于 2021-1-5 11:42
运行出错 905853663 发表于 2021-1-5 12:44
运行出错
把你的代码贴出来看看 jackz007 发表于 2021-1-5 12:59
把你的代码贴出来看看
int maxlenwordpos(char str)
{
int c,d,i,n;
for(c=d=i=n=0;str;i++)
{
if(str==' ')
{
if(c>n)
{
n= c;
d=i-c;
}
c=0;
}
else
{
c++;
}
}
if(c>n)
d=i-c;
return d;
} 本帖最后由 jackz007 于 2021-1-5 13:55 编辑
905853663 发表于 2021-1-5 13:12
int maxlenwordpos(char str)
{
int c,d,i,n;
#include <stdio.h>
// 返回值为最长字符串在 str 中的位置索引
int maxlenwordpos(char * str)
{
int c , d , i , n ;
for(c = d = i = n = 0 ; str ; i ++) {
if(str == ' ') {
if(c > n) {
n = c ;
d = i - c ;
}
c = 0 ;
} else {
c ++ ;
}
}
if(c > n) d = i - c ;
return d ;
}
int main(void)
{
char s ;
int i , n ;
for(n = 0 ; n < 255 && (s = getchar()) != '\n'; n ++) ;
s = '\0' ;
i = maxlenwordpos(s) ;
while(s && s != ' ') putchar(s) ;
printf("\n") ;
}
编译、运行实况
D:\0002.Exercise\C>g++ -o x x.c
D:\0002.Exercise\C>x
ab cde fghi jklmno pq rst 123 2345678 uvwx yz
2345678
D:\0002.Exercise\C>
页:
[1]