从上到下:
void fun(char p) 改为 void fun(char *p)
do while(*p=='\0') 改为 while(*p!='\0')
*p=*p-32 需要增加条件 if (*p >= 'a' && *p <= 'z') 不然非小写字母也被修改
if (k == 0 && *p!=' ') 里面的 k=0 改为 k=1; 不然非首字母也会改大写
main() 改为 int main()
修改后的程序为:
#include <string.h>
#include <stdio.h>
#include <conio.h>
// 功能:输入一行英文文本,将每一个单词的第一个字母变成大写
// 例如:输入"This is a C program.",输出为"This is A C Program."
void fun(char *p)
{
int k = 0;
while (*p!='\0')
{
if (k == 0 && *p!=' ')
{
if (*p >= 'a' && *p <= 'z')
{
*p -= 32;
}
k = 1;
}
else if (*p != ' ') {
k = 1;
}
else
{
k = 0;
}
p++;
}
}
int main()
{
char str[81];
gets(str);
fun(str);
puts(str);
}