本文目录一览:
- 1、C语言数组 输入一个字符串,并将其中的字符’a’用字符串”shu”替代后输出。如输入为”123abcaHello”,
- 2、c语言,shu
- 3、c语言--键盘输入数字,输出汉字读法
- 4、C语言中shu=H*256+L?
C语言数组 输入一个字符串,并将其中的字符’a’用字符串”shu”替代后输出。如输入为”123abcaHello”,
#include stdio.h
int main()
{
int i,j,k,m,n=0;
char a[81],s[4]="shu";
printf("请输入您要输入的字符串长度:");
scanf("%d",m);
printf("请输入您要输入的字符串:");
getchar(); //为消除回车键的影响
for(i=0;im;i++)
scanf("%c",a[i]);
for(i=0;im;i++)
{
if(a[i]=='a')
{ // n=n+2, 删除了,没什么用
for(j=m-1;ji;j--) // 由ji改为ji,表示i之后的都要移动。
a[j+2]=a[j];
j=i;
a[j]=s[0];
a[j+1]=s[1];
a[j+2]=s[2];
m=m+2; // 添加,添加字符后更新字符总数
}
}
for(k=0;km;k++) //m+n改为m,m已经表示字符总数
printf("%c",a[k]);
printf("\n"); //输出完字符后换行
}
123abcaHello的结果为:
c语言,shu
你直接把代码 复制/粘贴 上来多好啊,就能帮你调试了。
最主要的错如下:
c=1/3; 应该改为 c=1.0/3;
c语言--键盘输入数字,输出汉字读法
#include stdio.h
#include stdlib.h
#include string.h
char *change(char ch)
{
static char shu[3];
memset(shu, 0, 3);
switch(ch)
{
case '1':strcpy(shu,"一");break;
case '2':strcpy(shu,"二");break;
case '3':strcpy(shu,"三");break;
case '4':strcpy(shu,"四");break;
case '5':strcpy(shu,"五");break;
case '6':strcpy(shu,"六");break;
case '7':strcpy(shu,"七");break;
case '8':strcpy(shu,"八");break;
case '9':strcpy(shu,"九");break;
case '0':strcpy(shu,"零");break;
default:printf("输入有误!");exit(0);
}
return shu;
}
char *func(char *s, int len)
{
int i, j;
char *dest;
char *shu;
char *wei[4]={"千","百","十",""};
dest = (char *)malloc(64);
memset(dest, 0, 64);
switch(len)
{
case 1:j=3;break;
case 2:j=2;break;
case 3:j=1;break;
case 4:j=0;break;
}
for(i=0;ilen;i++)
{
shu = change(*(s+i));
if( !(i0*(s+i-1)=='0'*(s+i)=='0') )
{
strcat(dest, shu);
if(*(s+i)!='0')
strcat(dest, wei[j+i]);
}
}
if( (strlen(dest)2) (strcmp(shu,"零")==0) )dest[strlen(dest)-2]='\0';
return dest;
}
int main()
{
int len;
char num[10];
char *hanzi, *tmp;
hanzi = (char *)malloc(64);
tmp = (char *)malloc(32);
printf("输入数字,1~99999999:");
gets(num);
len = strlen(num);
memset(hanzi, 0, 64);
memset(tmp, 0, 32);
if(len4)
{
hanzi = func(num, len-4);
strcat(hanzi, "万");
tmp = func(num+len-4, 4);
if(strcmp(tmp, "零")!=0)
strcat(hanzi, tmp);
}
else hanzi = func(num, len);
printf("汉字读法:");
puts(hanzi);
free(hanzi);
free(tmp);
return 0;
}
C语言中shu=H*256+L?
估计是从某一地址读取字节数据。H表示高位字节,L是低位字节。*256相当于左移8位,这样两个字节可以合并为一个字