| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1921 人关注过本帖
标题:输入一行字符,统计其中多少单词,把首字母和尾字母进行大小写互换
只看楼主 加入收藏
林振钞
Rank: 1
来 自:厦门
等 级:新手上路
帖 子:4
专家分:8
注 册:2016-4-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
输入一行字符,统计其中多少单词,把首字母和尾字母进行大小写互换
#include<stdio.h>
#include<string.h>
char change(char c)
{
 if(c<='z'&&c>='a')
 {return c-32;}
 if(c<='Z'&&c>='A')
 {return c+32;}
}[/color]
void main()
{int s=0,i,m=1;
char a[20];
gets(a);
for(i=0;a[i]!='\0';i++)
{ if(a[i]!=' '&&m==1)
   {
  s++;m=0;
  }
  if(a[i]==' ')
  m=1;
}
     for(i=0;a[i]!='\0';i++)
    {
     if(a[i-1]==' '||a[i+1]==' ')
    {
    change(a[i]);
     }
       }
for(i=0;a[i]!='\0';i++)
printf("%s",a
);
printf("\n") ;
printf("s=%d",s);
getch();
}
帮我看看错在哪里
搜索更多相关主题的帖子: include change return 单词 统计 
2016-04-23 20:26
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:10 
回复 楼主 林振钞
#include<stdio.h>
#include<string.h>
void change(char c[20])
{
    int i;
    for(i=0;c[i]!='\0';i++)
    {
        if(c[i]<='z'&&c[i]>='a')
         c[i]=c[i]-32;
         else if(c[i]<='Z'&&c[i]>='A')
        c[i]=c[i]+32;
    }

}
int main()
{
void change(char c[20]);
int s=0,i,m=1;
char a[20];
gets(a);
for(i=0;a[i]!='\0';i++)
{ if(a[i]!=' '&&m==1)
   {
  s++;m=0;
  }
  if(a[i]==' ')
  m=1;
}
    change(a);
   

printf("%s",a);
printf("\n") ;
printf("s=%d",s);
return 0;
}
2016-04-23 21:37
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
“首字母和尾字母进行大小写互换”是不是这样:abCD=>AbCd ?
试了一下只考虑空格分隔
程序代码:
#include<stdio.h>
#include<ctype.h>

int upplow(int c)
{
    return islower(c) ? toupper(c) : tolower(c);
}

int main()
{
    char *p, str[100];
    int bl=1, count=0;

    p = str;
    gets(str);
    
    while(*p)
    {
        if(*p==' ')
        {
            if(p > str && *(p-1)!=' ') *(p-1) = upplow(*(p-1));
            bl = 1;
            p++;
            continue; 
        }
        
        if(bl)
        {
            bl = 0;
            count++;
            *p = upplow(*p);
        }

        p++;
    }
    
    if(p > str && *(p-1)!=' ') *(p-1) = upplow(*(p-1));
    printf("%d, %s", count,str);
    return 0;
}
2016-04-23 22:57
林振钞
Rank: 1
来 自:厦门
等 级:新手上路
帖 子:4
专家分:8
注 册:2016-4-21
收藏
得分:0 
回复 2楼 linlulu001
只是将首字母和尾字母进行大小写互换
例如;how are YOU
换成HoW ArE yOu
你看能不能进行单个字母的互换

十年灯
2016-04-24 11:15
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
回复 4楼 林振钞
#include<stdio.h>
#include<string.h>
void change(char c[20])
{
    int i,k;
    k=strlen(c);
    for(i=0;i<k;i++)
    {
        if(c[i]!=' '&&c[i]<='z'&&c[i]>='a')
         {c[i]=c[i]-32;break;
         }
         else if(c[i]!=' '&&c[i]<='Z'&&c[i]>='A')
         {c[i]=c[i]+32;break;
         }
    }                                                 //变换首字母;
    for(i=k;i>=0;i--)
    {
        if(c[i]!=' '&&c[i]<='z'&&c[i]>='a')
         {c[i]=c[i]-32;break;
         }
         else if(c[i]!=' '&&c[i]<='Z'&&c[i]>='A')
         {c[i]=c[i]+32;break;
         }
    }                                          // 变换尾字母;

}
int main()
{
void change(char c[20]);
int s=0,i,m=1;
char a[20];
gets(a);
for(i=0;a[i]!='\0';i++)
{ if(a[i]!=' '&&m==1)
   {
  s++;m=0;
  }
  if(a[i]==' ')
  m=1;
}
    change(a);
   

printf("%s",a);
printf("\n") ;
printf("s=%d",s);
return 0;
}

[此贴子已经被作者于2016-4-24 17:44编辑过]

2016-04-24 17:43
快速回复:输入一行字符,统计其中多少单词,把首字母和尾字母进行大小写互换
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034391 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved