编写字串str1中找出所有大小写字母进行转换,结果依次存入字符数组str2 中str1不变仍为原字串的程序

例如,字符串 str1 为 "91A2BC. a1bc",调用函数 fun 后,字符数组 str2将存入"91a2bc. A1BC",str1仍然是"91A2BC. a1bc" 。
很急
希望大哥大姐闷给个准确的答案

第1个回答  2009-05-20
#include<stdio.h>

char map[256];

void initmap(){
int dt = 'a'-'A';
int i=0;
for(i=0;i<10;i++){
map['0'+i]='0'+i;
}
map['.']='.';
for(i=0;i<26;i++){
map['a'+i]='a'+i-dt;
map['A'+i]='A'+i+dt;
}
}

void fun(char * s1,char *s2){

int i,dt = strlen(s1);
for(i=0;i<dt;i++){
s2[i] = map[s1[i]];
}

s2[i] = '\0';

}

void main(){

char s[] = "ASDF12345.asdfgSADFasd123123";
char s2[100];
initmap();

fun(s,s2);

puts(s);
puts(s2);

}
第2个回答  2009-05-20
char map[256];

void fun(char * s1,char *s2){

int dt = 'a'-'A';
int i=0;
for(i=0;i<10;i++){
map['0'+i]='0'+i;
}
map['.']='.';
for(i=0;i<26;i++){
map['a'+i]='a'+i-dt;
map['A'+i]='A'+i+dt;
}

dt = strlen(s1);
for(i=0;i<dt;i++){
s2[i] = map[s1[i]];
}

}本回答被提问者采纳
第3个回答  2020-11-12
~~~
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

int ne(int x,char str[],int n)
{
for(int i=x+1;i<n;i++)
if(str[i]>='A'&&str[i]<='Z')
return i;
}
int main()
{
char temp;char str[82];

gets(str);int n=strlen(str);
for(int i=0;i<n;i++)
{
if(str[i]>='a'&&str[i]<='z')
str[i]-=32;
}
for(int i=0;i<n-1;i=ne(i,str,n))
{
for(int j=ne(i,str,n);j<n;j=ne(j,str,n))
{
if(str[i]>str[j])
swap(str[i],str[j]);
}
}
puts(str);
}
~~~
相似回答