当前位置: 代码迷 >> C语言 >> 高手帮忙看看
  详细解决方案

高手帮忙看看

热度:278   发布时间:2008-06-18 11:01:03.0
高手帮忙看看
#include<stdio.h>
void main()
{
    int i;
    char a[200],*p;
    p=a;
    gets(p);
    for(i=0;a[i]!='.';i++)
    {    if(a[i]==' ')
            a[i+1]=a[i+1]+'32';
    }
    puts(p);
}
    我这程序错在哪里,将字符的第一个字母变成大写并将其全部输出
搜索更多相关的解决方案: void  int  main  

----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{int i;
char a[200],* p;
printf("输入字符:\n");
scanf("%s",a);
p=a;
if(a[0]>='a'&&a[0]<='z')
a[0]=a[0]-32;
printf("%s",a);
}

[[it] 本帖最后由 yyow3193 于 2008-6-18 13:05 编辑 [/it]]
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
    int i;
    char a[200],*p;
    p=a;
    gets(p);
    for(i=0;a[i]!='.';i++)
    {    if(a[i]==' ')
            a[i+1]=a[i+1]-32;//改过
    }
    puts(p);
}
这个不能改变第一个字母吧,在额外加一个判断第一个字母的条件吧,在ASC码表中,小写字母在大写的后面,要减而不是加,而且减的是32而不是'32','32'的ASC码值不是32,所以会引起错误。
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
    char a[200],*p;
    p=a;
    gets(p);
   if(a[0]>='a'&&a[0]<='z')
   a[0]=a[0]-32;
   puts(p);
}

_____________________________________
所有字母转换为大写
#include<stdio.h>
#include<string.h>
void main()
{
    int i;
    char a[200];
   
    gets(a);
    strupr(a);
    puts(a);
}

[[it] 本帖最后由 crabeam 于 2008-6-18 13:39 编辑 [/it]]
----------------解决方案--------------------------------------------------------
  相关解决方案