首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C有关问题

2012-04-05 
C问题,求助一个小题目,输入一个字符串,然后碰到大写转小写,小写,转大写,其他字符不变下面代码,哪里不对麻

C问题,求助
一个小题目,输入一个字符串,然后碰到大写转小写,小写,转大写,其他字符不变
下面代码,哪里不对
麻烦各位指导



#include<iostream.h>
#include "string.h"
#include <stdio.h>

void main ()
{
  char primes[100];
  char *s=primes;
   

  cout<<"输入需转化的字符"<<endl;
  cin>>*s;
  //scanf("%s"primes);
  while (*s!='\0')
  {
  if((*s>='A')&&(*s<='Z'))
  *s+=32;
  else if((*s>='a')&&(*s<='z'))
  *s-=32;
  s++;
  }
   
  //for(int i=0;i<=sizeof(*s);i++)
  cout<<"输出转化后的字符"<<primes<<endl;

}

[解决办法]

C/C++ code
#include<iostream>#include <string.h>#include <stdio.h>using std::cin;using std::cout;using std::endl;void main (){    char primes[100];    char *s=primes;    cout<<"输入需转化的字符"<<endl;    cin>>s;    //scanf("%s"primes);    while (*s!='\0')    {        if((*s>='A')&&(*s<='Z'))            *s+=32;        else if((*s>='a')&&(*s<='z'))            *s-=32;        s++;    }    //for(int i=0;i<=sizeof(*s);i++)    cout<<"输出转化后的字符"<<primes<<endl;}
[解决办法]
cin>>*s; // 去掉*
没学过C++,应该是这样改吧
[解决办法]
s是一个char *型变量,里面存的是一个4字节的地址。

char *s=primes语句,将primes字符串的第一个元素的地址传&primes[0]传到char *变量s中。

cin>>s语句,若为楼主所写cin>>*s,相当于在为primes[0]赋值。


[解决办法]
C/C++ code
#include<iostream>#include "string.h"using namespace std;char change(char character){ if ( character<= 'z' && character>= 'a') {  return character-32; } else if (character<= 'Z' && character>= 'A') {  return character+ 32; }} int main (){    char primes[100];    char *s=primes;      cout<<"输入需转化的字符"<<endl;  cin>>s;  while(*s!='\0')  {    *s=change(*s);    s++;  }          cout<<"输出转化后的字符"<<primes<<endl;   system("pause");  return 0;}供您参考。。 

热点排行