當前位置:首頁 » 編程語言 » c語言shift轉char
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言shift轉char

發布時間: 2023-01-11 13:53:27

『壹』 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]!='';i++){
s[i-3]=s[i];
} //i從3開始直到遇到結束符'',往前3格賦值
i-=3; //最後i要退回3格
for(j=0;j<3;j++){
s[i++]=a[j];
} //將最後3個字母賦值為之前存到a的
}