这个C语音程序怎么修改错误

img


功能:输入一行英文文本,将每一个单词的第一个字母变成大写。例如:输入"This is a C program.",输出为"This is A C Program."。

从上到下:
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);
}