读书人

C有关问题

发布时间: 2012-04-05 12:42:40 作者: rapoo

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;}供您参考。。 

读书人网 >C语言

热点推荐