标题:字符串转换问题
只看楼主
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
回复 9楼 lwb603569640
你的能编译通过啊?
为什么用getchar不行,用gets就可以呢?
2012-11-12 15:36
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
得分:0 
getchar是读取单个字符的,而gets是读取字符串的。可以写个循环反复调用getchar  最后再加一个‘\0’

自由、民主、宪政!
2012-11-12 15:42
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
回复 12楼 lwb603569640
那如果要用getchar写呢?能帮忙写个么?我写的时候运行就崩溃的!
2012-11-12 15:47
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
得分:0 
回复 13楼 yudeyinji198
你等等。。。。

自由、民主、宪政!
2012-11-12 15:48
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
得分:0 
回复 13楼 yudeyinji198
程序代码:
#include<stdio.h>
#include<stdlib.h>

//转换
void chang(char *str)
{
    while(*str!='\0'){
        if((*str>='A') && (*str<='Z')){
        *str='*';
        }
        str++;
    }
}
int main()    
{
  char *str1, *str2, *str3;
  str1=malloc(100);
  str3=str2=str1;
  printf("输入字符串: ");

  while((*str1=getchar())!='\n'){
      str1++;
  }
  *str1='\0';

  chang(str2);
  printf("%s\n",str3);
  free(str1);
  return 0;
}

自由、民主、宪政!
2012-11-12 15:55
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
得分:5 
程序代码:
#include<stdio.h>
#include<stdlib.h>

//转换
void chang(char *str)
{
    while(*str!='\0'){
        if((*str>='A') && (*str<='Z')){
        *str='*';
        }
        str++;
    }
}
int main()    
{
  char *str1, *str2, *str3;
  str1=malloc(100);
  str3=str2=str1;
  printf("输入字符串: ");

  while((*str1=getchar())!='\n'){
      str1++;
  }
  *str1='\0';

  chang(str2);
  printf("%s\n",str3);
  free(str1);
  return 0;
}

自由、民主、宪政!
2012-11-12 15:56
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
得分:0 
D:\Microsoft Visual Studio 9.0\VC>cl c.c
用于 80x86 的 Microsoft (R) 32 位 C/C++ 优化编译器 15.00.30729.01 版
版权所有(C) Microsoft Corporation。保留所有权利。

c.c
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:c.exe
c.obj

D:\Microsoft Visual Studio 9.0\VC>c
输入字符串: AAssAAs
**ss**s




以上是运行结果

自由、民主、宪政!
2012-11-12 15:58
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
回复 16楼 lwb603569640
我的编译器通不过,VS的。
2012-11-12 16:00
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>

//转换
void chang(char *str)
{
    while(*str!='\0'){
        if((*str>='A') && (*str<='Z')){
        *str='*';
        }
        str++;
    }
}
int main()    
{
  char *str1, *str2, *str3;
  str1=(char *)malloc(100);
  str3=str2=str1;
  printf("输入字符串: ");

  while((*str1=getchar())!='\n'){
      str1++;
  }
  *str1='\0';

  chang(str2);
  printf("%s\n",str3);
  free(str1);
  return 0;
}

自由、民主、宪政!
2012-11-12 16:07
lwb603569640
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:283
专家分:436
注 册:2012-11-9
得分:0 
你用vs建立工程了吧,  默认是用c++编译器。。。在 malloc前加上  (char *)

自由、民主、宪政!
2012-11-12 16:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-386799-1-1.html




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

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