‘壹’ c语言函数问题
#include<stdio.h>
#include<string.h>
#defineMAXS10
voidShift(chars[]);
voidGetString(chars[]);/*实现细节在此不表*/
intmain()
{
chars[MAXS];
GetString(s);
Shift(s);
printf("%s ",s);
return0;
}
//下面是修改过的答案及原因
voidGetString(chars[])
{
scanf("%s",s);
return;//void也写上return比较好
}
voidShift(chars[])
{
inti,t,d=0,e;
chara[100],b[100],c[100];
memset(a,0,sizeof(a));//abc数组都没有初始化,里面的数据不能保证是正常的
memset(b,0,sizeof(b));//可能在你的电脑上数据正常,放在评测机上就错了
memset(c,0,sizeof(c));
e=strlen(s);
for(i=0;i<e;i++){
if(i<=2){
a[i]=s[i];
}
if(i>2){
b[d]=s[i];
d++;
}
}
d=0;
t=strlen(b);
for(i=0;i<e;i++){
if(i<t){
s[i]=b[i];
//c[i]=b[i];
}
if(i>=t){
s[i]=a[d];
//c[i]=a[d];
d++;
}
}
// puts(c);
return;//void也写上return比较好
}
‘贰’ C语言 int转char
1、可以转换,强制转换就行。例如:
int a=100;
unsigned char * c = (unsigned char *)a;
2、强制类型转换
当操作数的类型不同,而且不属于基本数据类型时,经常需要强制类型转换,将操作数转化为所需要的类型。强制类型转换具有两种形式,称为显式强制转换和隐式强制类型转换。
显式强制类型转换
显式强制类型转换需要使用强制类型转换运算符,格式如下:
type(<expression>)
或
(type)<expression>
其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:
int nVar=0xab65;
char cChar=char (nVar);
上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。
‘叁’ 大学C语言指针函数题 请用程序实现将指定字符串的前三个字符移到最后
void shift(char *str)
{
int len = strlen(str);
if (len <= 3) {
return;
}
for (int j = 0; j < 3; ++j) {
char tmp = str[0];
for (int i = 0; i < len - 1; ++i) {
str[i] = str[i + 1];
}
str[len - 1] = tmp;
}
}
请采纳,谢谢
‘肆’ c语言强制int转化为char命令是什么
int a=65;
char ch=(char)a;//强制转化为char;变量名前加个括号,括号里就是要强制转化的类型
‘伍’ c语言里怎么把float转换为char型
可以使用强制转换,其一般形式为:(类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (float) a 把a转换为浮点型,(int)(x+y) 把x+y的结果转换为整型。
这种方法显然对浮点型数据的精度会有影响,且注意最终输出的形式不同结果也是不同的,若要保留数字形式输出则为%d形式。
在程序中的使用举例:
(5)c语言shift转char扩展阅读:
在使用强制转换时应注意以下问题:
1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。
2.无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。
‘陆’ 任意进制间的转换(用c语言实现)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char digit[16]={"0123456789abcdef"};
int readJZS(int org_goal);
int read_org_data(char *data, int org);
void shift_all(char *org_data, int org, char *goal_data, int goal);
long other_to_ten(char *org_data, int org);
void ten_to_other(long ten, char *goal_data, int goal);
int main(int argc, char *argv[])
{
int org;
int goal;
char org_data[20]={'\0'};
char goal_data[20]={'\0'};
int tmp;
char c;
while (1)
{
org=readJZS(0);
if (org==0)
return 0;
tmp=read_org_data(org_data, org);
if (tmp==0)
return 0;
goal=readJZS(1);
if (goal==0)
return 0;
shift_all(org_data, org, goal_data, goal);
printf("Result:%s",goal_data);
printf("Press Q to quit!\n");
c=getchar();
if (toupper(c)=='Q')
break;
}
system("PAUSE");
return 0;
}
int readJZS(int org_goal)
{
int ret=0;
while (1)
{
if (org_goal==0)
printf("Please input origion jin shu(0: complete):");
else
printf("Please input goal jin shu(0: complete):");
scanf("%d",&ret);
getchar();
if (ret>=2 && ret<=16)
return ret;
else if(ret!=0)
{
printf("Please input integer between 0 and 16.\n");
continue;
}
else
return 0;
}
}
int read_org_data(char *data, int org)
{
int i;
char *p;
int f=0;
int h=1;
while (1)
{
printf("Please input origion data (integer):");
/*gets(data);*/
scanf("%s",data);
getchar();
p=data;
if (strlen(data)==0)
return 0;
while (*p)
{
f=0;
for (i=0;i<org;i++)
{
if (*p==digit[i])
{
f=1;
break;
}
}
if (f==0)
{
h=0;
break;
}
p++;
}
if (h==0)
{
continue;
}
else
{
return 1;
}
}
}
void shift_all(char *org_data, int org, char *goal_data, int goal)
{
long ten;
ten=other_to_ten(org_data, org);
ten_to_other(ten, goal_data, goal);
}
long other_to_ten(char *org_data, int org)
{
long ret=0;
char *p=org_data;
int d;
while (*p)
{
if (*p>=48 && *p<58)
{
d=*p-48;
}
else if(*p>=65 && *p<70)
{
d=*p-55;
}
else if(*p>=97 && *p<102)
{
d=*p-87;
}
ret=ret*org+d;
p++;
}
return ret;
}
void ten_to_other(long ten, char *goal_data, int goal)
{
int i=0;
while (ten>0)
{
goal_data[i++]=digit[ten%goal];
ten=ten/goal;
}
strrev(goal_data);
}
‘柒’ c语言怎么把char*转换到char
如果
x
是
float
型,c
是
char
型,这样就可以把类型转换:
c
=
(char)
x;
所谓转换是这样的。例如:
float
x
=
65.1;
char
c;
c
=
(char)
x;
这样
c
里存的就是
65,即字符
'a'。
补充回答:
还有另外一种“转换”,就是
arvin
2010-11-06
14:08
所说的,不过不是
float
型转换成
char
型,而是把
float
型的数字转换成为“字符型数组”的表达方式。这种转换最简单的方法就是借用
<stdio.h>
里的
sprintf
函数,把实数打印到数组里。
例如:
float
x
=
65.1;
char
a[20];
sprintf(a,
"%g",
x);
这样子,数组
a
里就会保存字符串
"65.1",即
a[0]
=
'6';
a[1]
=
'5';
a[2]
=
'.';
a[3]
=
'1';
a[4]
=
'\0';
不知道楼主要的,是哪一种转换。请选择满意的答案采纳。如有疑问,欢迎追问。
‘捌’ C语言关于CHAR类型的转换
这些都是warning啊, 不是error
你这个方法比较麻烦, 直接 c = num2 - 10 + 'a'; 就可以了:)
‘玖’ 移动字母 C语言
如图,源代码在网页端发
#include<stdio.h>
#include<string.h>
#defineMAXS100
voidShift(chars[]);
voidGetString(chars[]);/*实现细节在此不表*/
intmain()
{
chars[MAXS];
GetString(s);
Shift(s); //交换
printf("%s
",s);
return0;
}
voidGetString(chars[]){//不写这个无法验证
scanf("%s",s);
}
voidShift(chars[]){
chara[3];
inti,j;
for(i=0;i<3;i++){
a[i]=s[i];//将前3个字母存到a
}
//此时i已经=3
for(;s[i]!='