中易网

c语言程序改错

答案:1  悬赏:80  
解决时间 2021-10-17 18:34
  • 提问者网友:欺烟
  • 2021-10-17 04:11
题目:给定程序的功能是:读入一行英文文本,
将其中每个单词的最后一个字母改成大写,然后
输出此文本行(这里的“单词”是指由空格隔开的
字符串)。例如,若输入Iam a student to take
the examination.,则应输出"IaM A studenT tO
takE thE examination."。
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include "conio.h"
#include "stdio.h"
#include "ctype.h"
#include "string.h"
up1st ( char *p )
{

integer k = 0;
for ( ; *p; p++ )
if ( k )

{ if ( *p = ' ' )
{ k = 0;

*(p -1 ) = toupper( *( p - 1 );
}
}
else if ( *p != ' ' ) k = 1;
*( p-1 ) = toupper( *(p-1) );
}
main( )
{ char chrstr[81];
printf( "\nPlease enter a string: " ); gets ( chrstr );
printf( "\n\nBefore changing:\n %s", chrstr );
up1st( chrstr );
printf( "\nAfter changing:\n %s", chrstr );
}
最佳答案
  • 二级知识专家网友:愁杀梦里人
  • 2020-11-21 09:32
//找到了四个错误,并且在程序中做了修改,注释
//如果有疑问,欢迎交流
#include "conio.h"
#include "stdio.h"
#include "ctype.h"
#include "string.h"
//应该加上void,否则默认是int,且需要返回值,这个错误不是必须的,好像和编译器有关
void up1st ( char *p )
{

int k = 0; //Integer -> int
for ( ; *p; p++ )
if ( k )


if ( *p == ' ' ) //应该是==

k = 0;

*(p -1 ) = toupper( *( p - 1 )); //少一个括号
}
}
else if ( *p != ' ' ) 
k = 1;
*( p-1 ) = toupper( *(p-1) );
}
main( )

char chrstr[81];
printf( "\nPlease enter a string: " ); gets ( chrstr );
printf( "\n\nBefore changing:\n %s", chrstr );
up1st( chrstr );
printf( "\nAfter changing:\n %s", chrstr );
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息