这个c语言程序怎么写大小写字母转换,原程序如下

这个c语言程序怎么写大小写字母转换,原程序如下,第1张

#include<stdioh>

#include<stringh>

//声明一个能转换英文字符大小写的函数。

//如果传入其它字符,例如空格,该函数返回原字符。

char reverse(char ch);

main()

{ char ch;

int i=0;

//读取一行字符串

ch=getchar();

while(ch!='#') //如果还有字符

{ //那么就将该字符传给reverse函数去处理,并重新放回ch中

//输出转换后的ch,并输入下一个待转换字符

ch=reverse(ch);

putchar(ch);

ch=getchar();

}

putchar(ch);

}

char reverse(char ch)

{if(ch>='a'&&ch<='z')//如果是小写字母,如何处理?

ch-=32;

else if(ch>='A'&&ch<='Z')//如果是大写字母,如何处理?

ch+=32;

return ch;

}

char num[10] = {'零','一','二','三','四','五','六','七','八','九'};

char num2[10] = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};

char wei[4] = {'\0','十','百','千'};

char danwei[3] = {'万','亿'};

char wei2[4] = {'拾','佰','仟'};

这几个定义不对,因为汉字占两个字节,所要num等的长度要乘以2

wei2和danwei两个,当字符串遇到\0就会结束,所要这样定义是不对的

你要这么定义,也就是定义二维数组

num[10][] = {"零",一”,“二”,“三”,“四”,“五”,“六”,“七”,“八”,“九”};

其他的汉字定义也一样,我就不写了,下面我利用的时候,就默认改过了

思路,首先判断输入的x的长度,接着转换为0~9

lx=strlen(x);

for(i=0;i<lx;i++)

x[i]=x[i]-'0';

接着就是输出了,这个要交替输出

也就是输出一个x的字符0~9对应的num中的数,接着输出对应的万千亿等标识

代码是

for(i=0;i<lx;i++)

{

d=lx-i; //这里要计算这个位在这个字符到最后的位置,你懂

//这个可能控制不好,也就是一位的差距,你自己调试一下就可以

puts(num2[x[i]]); //输出x中的数对应的汉字

//接下来输出相应的百千万亿等汉字

if(d==2||d==6||d==10) //在十、十万、十亿位置输出十

puts(wei[0]);

if(d==3||d==7||d==11) //在百,百万、百亿位置输出百

puts(wei[1]);

if(d==4||d==8||d==12) //在千,千万,千亿位置输出千

puts(wei[2]);

if(d==5) //在万位输出万

puts(danwei[0]);

if(d==9) //在第九位输出亿

puts(danwei[1])

}

#include<stdioh>

int main (void)

{

int op, i = 0, y = 0;

char arr[20];

printf ("\n------------------------------------------------------");//输出菜单

printf ("\n 1Octal convert decimal");

printf ("\n 2Hex converted to a decimal number");

printf ("\n 3Binary conversion to a decimal number");

printf ("\n------------------------------------------------------");

printf ("\nPlease input a number and choose a operating:");

scanf ("%s%d", arr, &op);//输入数字以及 *** 作

switch (op)

{

case 1:while (arr[i])//八进制转换为十进制

{

y = y 8 + arr[i] - '0';

i++;

}

case 2:while (arr[i])//十六进制转换为十进制

{

y = y 16 + arr[i] - '0';

i++;

}

case 3:while (arr[i])//二进制转换为十进制

{

y = y 2 + arr[i] - '0';

i++;

}

}

printf ("The result is %d", y);//输出

return 0;

}

#include <stdioh>

long s2i(char s);

int main(void) 

{

printf("%ld\n",s2i("-123456"));

return 0;

}

long s2i(char s)

{

long n=0,sign=1;

while(s)

{

switch(s)

{

case '+':sign=1;break;

case '-':sign=-1;break;

default:n=n10+s-'0';break;

}

s++;

}

return signn;

}

利用专用的数模转换芯片。在数模转换 *** 作中利用专用的数模转换芯片,可以实现将数字信号转换成模拟量输出的功能,是数据转换程序设计实验硬件的原理。硬件是计算机硬件的简称,是指计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称。

#include<stdioh>

int StrToInt(char strInt);

int main()

{ char s[12]="832509";

//scanf("%s",s);

printf("%d\n",StrToInt(s));

return 0;

}

int StrToInt(char strInt)

{ int i,n=0;

for(i=0;strInt[i];i++)

n=n10+strInt[i]-'0';

return n;

}

以上就是关于这个c语言程序怎么写大小写字母转换,原程序如下全部的内容,包括:这个c语言程序怎么写大小写字母转换,原程序如下、C语言程序设计的一道题,一个把阿拉伯数字转换成中文大写数字的程序。我自己编写如下:、C 语言 进制转换程序设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9755467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存