欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言封裝函數(shù)字符串練習匯總分享

 更新時間:2022年03月21日 17:23:10   作者:DS小龍哥  
這篇文章主要介紹了C語言封裝函數(shù)字符串練習匯總分享,分享內(nèi)容有字符串查找、字符串拼接、字符串轉(zhuǎn)整數(shù)等內(nèi)容,需要而小伙伴可以參考一下

封裝函數(shù): 判斷閏年和平年

該函數(shù)判斷傳入的年份是否是閏年和平年,通過返回值表示結(jié)果。

#include <stdio.h>
//函數(shù)聲明
int GetYearSate(int year);

int main()
{
?? ?int year;
?? ?printf("請輸入年份:");
?? ?scanf("%d",&year);
?? ?//判斷閏年和平年
?? ?if(GetYearSate(year))
?? ?{
?? ??? ?printf("平年.\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("閏年.\n");
?? ?}
? ? return 0;
}

/*
函數(shù)功能: 判斷平年閏年
返回值: 0表示閏年 1表示平年
*/
int GetYearSate(int year)
{
?? ?if((year%4==0 && year%100!=0)||(year%400==0))
?? ?{
?? ??? ?return 0;
?? ?}
?? ?return 1;
}

封裝函數(shù): 字符串查找(參考strstr)

第一步查看幫助: man strstr

#include <stdio.h>
#include <string.h> //聲明函數(shù)的
char *my_strstr(char *src_str,char *find_str);
int main()
{
?? ?char src_str[100];//"123456789"
?? ?char find_str[100];
?? ?printf("請輸入字符串:");
?? ?scanf("%s",src_str);
?? ?printf("請輸入查找的字符串:");
?? ?scanf("%s",find_str);
?? ?
?? ?//strstr() //查找到指定的字符串,會返回查找字符串在源字符串里的首地址
?? ?printf("查找的字符串結(jié)果:%s\n",strstr(src_str,find_str));
?? ?printf("查找的字符串結(jié)果:%s\n",my_strstr(src_str,find_str));
? ?return 0;
}

//函數(shù)功能: 字符串查找函數(shù)
//返回值: 返回查找到的字符串地址
char *my_strstr(char *src_str,char *find_str)
{
?? ?int src_len;
?? ?int find_len;
?? ?int i,j;
?? ?src_len=strlen(src_str);
?? ?find_len=strlen(find_str);
?? ?for(i=0;i<src_len;i++)
?? ?{
?? ??? ?for(j=0;j<find_len;j++)
?? ??? ?{
?? ??? ??? ?if(src_str[i+j]!=find_str[j])break;
?? ??? ?}
?? ??? ?//判斷是否查找成功
?? ??? ?if(j==find_len)
?? ??? ?{
?? ??? ??? ?//return &src_str[i];
?? ??? ??? ?return src_str+i;
?? ??? ?}
?? ?}
?? ?return NULL;
}

封裝函數(shù): 字符串比較(參考strcmp)

#include <stdio.h>
#include <string.h> //聲明函數(shù)的
int my_strcmp(char *s1,char *s2);

int main()
{
?? ?char str1[100];//"123456789"
?? ?char str2[100];
?? ?printf("請輸入字符串1:");
?? ?scanf("%s",str1);
?? ?printf("請輸入字符串2:");
?? ?scanf("%s",str2);
?? ?
? ? //int strcmp(const char *s1, const char *s2);
?? ?//比較兩個字符串是否相等。通過返回值表示。
?? ?printf("比較字符串的結(jié)果:%d\n",strcmp(str1,str2));
?? ?printf("比較字符串的結(jié)果:%d\n",my_strcmp(str1,str2));
? ? return 0;
}

/*
函數(shù)功能: 比較兩個字符串是否相等
返回值: ? 0表示相等 1表示不相等
*/
int my_strcmp(char *s1,char *s2)
{
?? ?while(*s1!='\0' && *s2!='\0')
?? ?{
?? ??? ?if(*s1!=*s2)break;
?? ??? ?s1++;
?? ??? ?s2++;
?? ?}
?? ?if(*s1=='\0'&&*s2=='\0')return 0;
?? ?return 1;
}

封裝函數(shù): 字符串拼接(參考strcat)

#include <stdio.h>
#include <string.h> //聲明函數(shù)的
char *my_strcat(char *s1,char *s2);

int main()
{
?? ?char str1[100];//"123456789"
?? ?char str2[100];
?? ?printf("請輸入字符串1:");
?? ?scanf("%s",str1);
?? ?printf("請輸入字符串2:");
?? ?scanf("%s",str2);
?? ?
?? ?//strcat 字符串拼接函數(shù),拼接之后返回源字符串的首地址
? ?// printf("拼接的結(jié)果:%s\n",strcat(str1,str2));
?? ?printf("拼接的結(jié)果:%s\n",my_strcat(str1,str2));
? ? return 0;
}

//函數(shù)功能: 字符串拼接
char *my_strcat(char *s1,char *s2)
{
?? ?char *p=s1; //記錄源字符串的首地址
?? ?while(*s1 != '\0'){s1++;} //偏移到結(jié)尾
?? ?while(*s2!='\0')
?? ?{
?? ??? ?*s1=*s2;
?? ??? ?s2++;
?? ??? ?s1++;
?? ?}
?? ?*s1='\0';
?? ?return p;
}

封裝函數(shù): 字符串轉(zhuǎn)整數(shù)(參考atoi)

#include <stdio.h>
#include <string.h>
int my_atoi(char *str);
int main()
{
?? ?char buff[100];
?? ?printf("請輸入一個整數(shù)字符串:");
?? ?scanf("%s",buff);
?? ?//字符串轉(zhuǎn)整數(shù)
?? ?printf("轉(zhuǎn)換結(jié)果:%d\n",atoi(buff));
?? ?printf("轉(zhuǎn)換結(jié)果:%d\n",my_atoi(buff));
?? ?return 0;
}

/*
函數(shù)功能: 字符串轉(zhuǎn)整數(shù)
函數(shù)形參: 傳入待轉(zhuǎn)換的字符串(0~9)
返回值: 返回轉(zhuǎn)換的整數(shù)結(jié)果,如果轉(zhuǎn)換失敗返回0
*/
//"123ABC"
int my_atoi(char *str)
{
?? ?int data=0;
?? ?while(*str!='\0')
?? ?{
?? ??? ?if(*str>='0' && *str<='9')
?? ??? ?{
?? ??? ??? ?data*=10; //0 ?10 120
?? ??? ??? ?data+=*str-'0';//1 12 123
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?str++;
?? ?}
?? ?return data;
}

封裝函數(shù): 字符串轉(zhuǎn)浮點數(shù)(參考atof)

“123.456789” ? ?456789—>0.456789
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

double my_pow(double x,int y);
double my_atof(char *str,int cnt);

int main()
{
?? ?char buff[100];
?? ?printf("請輸入一個浮點數(shù)字符串:");
?? ?scanf("%s",buff);
?? ?//字符串轉(zhuǎn)浮點數(shù)
?? ?printf("轉(zhuǎn)換結(jié)果:%lf\n",atof(buff));
?? ?printf("轉(zhuǎn)換結(jié)果:%lf\n",my_atof(buff,3));
?? ?return 0;
}

/*
函數(shù)功能: 字符串轉(zhuǎn)浮點數(shù)
函數(shù)形參: str是傳入待轉(zhuǎn)換的字符串 ? cnt是保留的小數(shù)點位數(shù)
返回值: 返回轉(zhuǎn)換的整數(shù)結(jié)果,如果轉(zhuǎn)換失敗返回0
*/
//"123.456 ?123"
double my_atof(char *str,int cnt)
{
?? ?int data=0;
?? ?int cnt_f=0;
?? ?double data_f=0.0;
?? ?while(*str!='\0' && *str!='.')
?? ?{
?? ??? ?if(*str>='0' && *str<='9')
?? ??? ?{
?? ??? ??? ?data_f*=10;
?? ??? ??? ?data_f+=*str-'0';
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?str++;
?? ?}
?? ?str++; //跳過 "." ? "123.456789"
?? ?while(*str!='\0' && cnt_f!=cnt)
?? ?{
?? ??? ?if(*str>='0' && *str<='9')
?? ??? ?{
?? ??? ??? ?data*=10;
?? ??? ??? ?data+=*str-'0';
?? ??? ??? ?cnt_f++; //記錄小數(shù)部分數(shù)量
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?str++;
?? ?}
?? ?
?? ?//合成浮點數(shù) ?"123.456"
?? ?if(cnt>cnt_f)
?? ?{
?? ??? ?cnt=cnt_f;
?? ?}
?? ?data_f+=data*my_pow(0.1,cnt);
?? ?return data_f;
}

//函數(shù)功能:計算x的y次方
//my_pow(2,3);
double my_pow(double x,int y)
{
?? ?double tmp=1.0;
?? ?int i;
?? ?for(i=0;i<y;i++)
?? ?{
?? ??? ?tmp=tmp*x;//2.0 ?4.0 ?8.0
?? ?}
?? ?return tmp;
}

封裝函數(shù): 整數(shù)轉(zhuǎn)字符串 123 “123”

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void int_to_str(char *str,int data);
int main()
{
?? ?int data;
?? ?char buff[100];
?? ?printf("請輸入一個整數(shù):");
?? ?scanf("%d",&data);
?? ?//整數(shù)轉(zhuǎn)字符串
?? ?int_to_str(buff,data);
?? ?printf("buff=%s\n",buff);
?? ?return 0;
}

/*
函數(shù)功能: 整數(shù)轉(zhuǎn)字符串
*/
void int_to_str(char *str,int data)
{
?? ?char buff[100]; //存放第一次分離的數(shù)據(jù)
?? ?int i=0;
?? ?int j=0;
?? ?while(data) //123
?? ?{
?? ??? ?buff[i]=data%10+'0';
?? ??? ?data=data/10;
?? ??? ?i++;
?? ?}
?? ?for(j=0;j<i;j++)
?? ?{
?? ??? ?str[j]=buff[i-1-j];
?? ?}
?? ?str[j]='\0';
}

//函數(shù)功能:計算x的y次方
//my_pow(2,3);
double my_pow(double x,int y)
{
?? ?double tmp=1.0;
?? ?int i;
?? ?for(i=0;i<y;i++)
?? ?{
?? ??? ?tmp=tmp*x;//2.0 ?4.0 ?8.0
?? ?}
?? ?return tmp;
}

封裝函數(shù): 浮點數(shù)轉(zhuǎn)字符串 123.456 – “123.456”

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int my_pow(int x,int y);
void int_to_str(char *str,int data);
void double_to_str(char *str,double data_f,int cnt);
int main()
{
?? ?double data;
?? ?char buff[100];
?? ?printf("請輸入一個浮點數(shù):");
?? ?scanf("%lf",&data);
?? ?double_to_str(buff,data,5);
?? ?printf("buff=%s\n",buff);
?? ?return 0;
}

/*
函數(shù)功能: 浮點數(shù)轉(zhuǎn)字符串
*/
void double_to_str(char *str,double data_f,int cnt)
{
?? ?char buff[50]; //存放第一次分離的數(shù)據(jù)
?? ?int i=0;
?? ?int j=0;
?? ?int n=0;
?? ?int data_i1;
?? ?int data_i2;
?? ?double temp_f;
?? ?/*1. 分離整數(shù)部分*/ ?//123.3
?? ?data_i1=data_f; //123
?? ?temp_f=data_f-data_i1;
?? ?data_i2=temp_f*my_pow(10,cnt); //456
?? ?/*2. 轉(zhuǎn)換整數(shù)部分*/
?? ?while(data_i1)
?? ?{
?? ??? ?buff[i]=data_i1%10+'0';
?? ??? ?data_i1=data_i1/10;
?? ??? ?i++;
?? ?}
?? ?/*3. 將整數(shù)部分放到數(shù)組里*/
?? ?for(j=0;j<i;j++)
?? ?{
?? ??? ?str[j]=buff[i-1-j];
?? ?}
?? ?str[j]='.';
?? ?/*4. 轉(zhuǎn)換小數(shù)部分*/ ? // "123.456"
?? ?while(data_i2)
?? ?{
?? ??? ?buff[n]=data_i2%10+'0';
?? ??? ?data_i2=data_i2/10;
?? ??? ?n++;
?? ?}
?? ?/*5. 將小數(shù)部分放到數(shù)組里*/
?? ?for(j=0;j<n;j++)
?? ?{
?? ??? ?str[j+i+1]=buff[n-1-j];
?? ?}
?? ?str[j+i+1]='\0';
}

//函數(shù)功能:計算x的y次方
//my_pow(2,3);
int my_pow(int x,int y)
{
?? ?int tmp=1;
?? ?int i;
?? ?for(i=0;i<y;i++)
?? ?{
?? ??? ?tmp=tmp*x;//2.0 ?4.0 ?8.0
?? ?}
?? ?return tmp;
}

浮點數(shù)轉(zhuǎn)字符串 123.456 ?-- “123.456”?

float a=123.456;
int b=a; //b=123
a=a-b; ?//a=0.456 ?10*10*10

封裝函數(shù): 判斷回文字符串

該函數(shù)判斷傳入的字符串是否是回文,通過返回值表示結(jié)果。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int func(char *p);
int main()
{
?? ?char buff[100];
?? ?printf("輸入字符串:");
?? ?scanf("%s",buff);
?? ?if(func(buff))printf("回文.\n");
?? ?else printf("不是回文.\n");
?? ?return 0;
}

//函數(shù)功能: "123" ?"121"
int func(char *p)
{
?? ?int i;
?? ?int len;
?? ?len=strlen(p);
?? ?for(i=0;i<len/2;i++)
?? ?{
?? ??? ?if(p[i]!=p[len-1-i])break;
?? ?}
?? ?if(i==len/2)return 1; //回文
?? ?return 0; //不是回文
}

封裝函數(shù): 字符串替換

將源字符串里指定的單詞替換成指定單詞。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void str_func(char *str1,char *str2,char *str3);
int main()
{
?? ?char str1[100];
?? ?char str2[100];
?? ?char str3[100];
?? ?/*1.準備數(shù)據(jù)*/
?? ?printf("輸入源字符串:");
?? ?scanf("%s",str1);
?? ?printf("輸入查找的字符串:");
?? ?scanf("%s",str2);
?? ?printf("輸入替換的字符串:");
?? ?scanf("%s",str3);
?? ?str_func(str1,str2,str3);
?? ?/*4. 完成字符串打印*/
?? ?printf("str1=%s\n",str1);
?? ?return 0;
}


//"123A789" ? ""
void str_func(char *str1,char *str2,char *str3)
{
?? ?int str1_len=0;
?? ?int str2_len=0;
?? ?int str3_len=0;
?? ?int i,j;
?? ?int cnt=0;
?? ?
?? ?/*2. 計算長度*/
?? ?str1_len=strlen(str1);
?? ?str2_len=strlen(str2);
?? ?str3_len=strlen(str3);
?? ?/*3. 字符串替換*/
?? ?for(i=0;i<str1_len;i++)
?? ?{
?? ??? ?//查找字符串
?? ??? ?for(j=0;j<str2_len;j++)
?? ??? ?{
?? ??? ??? ?if(str1[i+j]!=str2[j])break;
?? ??? ?}
?? ??? ?//如果查找成功就進行替換
?? ??? ?if(j==str2_len)
?? ??? ?{
?? ??? ??? ?//總長度變短了
?? ??? ??? ?if(str2_len>str3_len)
?? ??? ??? ?{
?? ??? ??? ??? ?cnt=str2_len-str3_len; //差值
?? ??? ??? ??? ?//完成數(shù)據(jù)向前移動--覆蓋
?? ??? ??? ??? ?for(j=i+str2_len-cnt;j<str1_len;j++)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?str1[j]=str1[j+cnt];
?? ??? ??? ??? ?}
?? ??? ??? ??? ?str1[str1_len-cnt]='\0';
?? ??? ??? ?}
?? ??? ??? ?//總長度變長了
?? ??? ??? ?else if(str2_len<str3_len)
?? ??? ??? ?{
?? ??? ??? ??? ?cnt=str3_len-str2_len; //差值
?? ??? ??? ??? ?//完成數(shù)據(jù)向后移動
?? ??? ??? ??? ?for(j=str1_len;j>=i+str2_len;j--)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?str1[j+cnt]=str1[j];
?? ??? ??? ??? ?}
?? ??? ??? ??? ?str1[str1_len+cnt]='\0';
?? ??? ??? ?}
?? ??? ??? ?//替換
?? ??? ??? ?for(j=0;j<str3_len;j++)
?? ??? ??? ?{
?? ??? ??? ??? ?str1[i+j]=str3[j];
?? ??? ??? ?}
?? ??? ??? ?//重新計算長度
?? ??? ??? ?str1_len=strlen(str1);
?? ??? ?}
?? ?}
}

封裝函數(shù): 清除二維數(shù)組的指定行

該函數(shù)功能可以通過傳入的參數(shù),清除指定二維數(shù)組的指定一行數(shù)據(jù)為0.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void clear(int (*p)[5],int a,int b);
int main()
{
?? ?int i,j;
?? ?int buff[][5]=
?? ?{
?? ??? ?{1,2,3,4,5},
?? ??? ?{11,12,13,14,15},
?? ??? ?{21,22,23,24,25}
?? ?};
?? ?printf("源數(shù)據(jù):\n");
?? ?for(i=0;i<sizeof(buff)/sizeof(buff[0]);i++)
?? ?{
?? ??? ?for(j=0;j<sizeof(buff[0])/sizeof(buff[0][0]);j++)
?? ??? ?{
?? ??? ??? ?printf("%d ",buff[i][j]);
?? ??? ?}
?? ??? ?printf("\n");
?? ?}
?? ?
?? ?clear(buff,888,2);
?? ?
?? ?printf("清除之后的數(shù)據(jù):\n");
?? ?for(i=0;i<sizeof(buff)/sizeof(buff[0]);i++)
?? ?{
?? ??? ?for(j=0;j<sizeof(buff[0])/sizeof(buff[0][0]);j++)
?? ??? ?{
?? ??? ??? ?printf("%d ",buff[i][j]);
?? ??? ?}
?? ??? ?printf("\n");
?? ?}
?? ?return 0;
}

void clear(int (*p)[5],int a,int b)
{
?? ?int i;
?? ?for(i=0;i<sizeof(p[0])/sizeof(p[0][0]);i++)
?? ?{
?? ??? ?p[b][i]=a;
?? ?}
}

封裝函數(shù):字符串里所有大寫字母互相替換

將字符串里所有大寫字母全部換成小寫字母。或者小寫字母全部換成大寫字母??梢酝ㄟ^形參進行區(qū)分。 該功能廣泛用在驗證碼功能上。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(char *str,int flag);
int main()
{
?? ?char buff[100];
?? ?printf("從鍵盤上輸入字符串:");
?? ?scanf("%s",buff);
?? ?printf("源字符串:%s\n",buff);
?? ?func(buff,0);
?? ?printf("大寫轉(zhuǎn)換小寫:%s\n",buff);
?? ?func(buff,1);
?? ?printf("小寫轉(zhuǎn)大寫:%s\n",buff);
?? ?return 0;
}

//函數(shù)功能: 大寫小寫轉(zhuǎn)換
//flag=0表示大寫轉(zhuǎn)換小寫 ?=1表示小寫轉(zhuǎn)大寫
void func(char *str,int flag)
{
?? ?int data;
?? ?while(*str!='\0')
?? ?{
?? ??? ?if(flag)
?? ??? ?{
?? ??? ??? ?if(*str>='a'&& *str<='z') //小寫
?? ??? ??? ?{
?? ??? ??? ??? ?*str=*str-32;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?if(*str>='A'&& *str<='Z') //小寫
?? ??? ??? ?{
?? ??? ??? ??? ?*str=*str+32;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?str++;
?? ?}
}

封裝GPS解碼函數(shù):可以傳入GPS格式的字符串

該函數(shù)可以傳入GPS格式的字符串,在函數(shù)里完成所有數(shù)據(jù)解碼輸出。經(jīng)度、緯度、衛(wèi)星的數(shù)量、時間

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char gps_buff[]=
{
?? ?"$GNGGA,114955.000,2842.4158,N,11549.5439,E,1,05,3.8,54.8,M,0.0,M,,*4F"
?? ?"$GNGLL,2842.4158,N,11549.5439,E,114955.000,A,A*4D"
?? ?"$GPGSA,A,3,10,31,18,,,,,,,,,,5.7,3.8,4.2*37"
?? ?"$BDGSA,A,3,07,10,,,,,,,,,,,5.7,3.8,4.2*2A"
?? ?"$GPGSV,3,1,10,10,49,184,42,12,16,039,,14,54,341,,18,22,165,23*7B"
?? ?"$GPGSV,3,2,10,22,11,318,,25,51,055,,26,24,205,,29,13,110,*7C"
?? ?"$GPGSV,3,3,10,31,50,287,36,32,66,018,*7F"
?? ?"$BDGSV,1,1,04,03,,,07,05,,,29,07,79,246,33,10,52,232,19*62"
?? ?"$GNRMC,114955.000,A,2842.4158,N,11549.5439,E,0.00,44.25,061117,,,A*4D"
?? ?"$GNVTG,44.25,T,,M,0.00,N,0.00,K,A*14"
?? ?"$GNZDA,114955.000,06,11,2017,00,00*47"
?? ?"$GPTXT,01,01,01,ANTENNA OK*35"
};

/*
函數(shù)功能: 根據(jù)逗號位置提取數(shù)據(jù)
函數(shù)參數(shù):
char *gps_src GPS源字符串地址
char *buff 存放提取的數(shù)據(jù)
char *find_head 查找的GPS數(shù)據(jù)頭
int cnt ?逗號的偏移量
返回值:提取的字節(jié)數(shù)。
*/
int GPS_GetData(char *gps_src,char *find_head,char *buff,int cnt)
{
?? ?char *p;
?? ?int number=0; //提取的數(shù)量
?? ?int a=0;
?? ?p=strstr(gps_src,find_head);
?? ?if(p!=NULL)
?? ?{
?? ??? ?//查找逗號的位置
?? ??? ?while(*p!='\0')
?? ??? ?{
?? ??? ??? ?if(*p==',')a++; //記錄逗號的數(shù)量
?? ??? ??? ?if(a==cnt)break; //逗號找成功了
?? ??? ??? ?p++;
?? ??? ?}
?? ??? ?p++; //跨過當前逗號
?? ??? ?//提取數(shù)據(jù)
?? ??? ?while(*p!='\0')
?? ??? ?{
?? ??? ??? ?if(*p==',')break; //遇到逗號停止提取數(shù)據(jù)
?? ??? ??? ?buff[number]=*p;
?? ??? ??? ?p++;
?? ??? ??? ?number++;
?? ??? ?}
?? ??? ?buff[number]='\0';
?? ?}
?? ?return number;
}

int main()
{
?? ?char buff[100];
?? ?GPS_GetData(gps_buff,"$GNGGA",buff,2);
?? ?printf("緯度:%s\n",buff);
?? ?GPS_GetData(gps_buff,"$GNGGA",buff,4);
?? ?printf("經(jīng)度:%s\n",buff);
?? ?return 0;
}

封裝函數(shù): 將十進制整數(shù)轉(zhuǎn)為16進制輸出(字符串形式)

#include <stdio.h>
//定義16進制的數(shù)據(jù),方便輸出
char hex_val[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};?
int main()?
{?
?? ?int number=0;
?? ?int a[100];?
?? ?int i=0;?
?? ?int data;?
?? ?/*1. 輸入十進制的整數(shù)*/
?? ?printf("輸入一個整數(shù):");?
?? ?scanf("%d",&number);?
?? ?/*2. 16進制最大值是15-0xFF,取余進行分離*/
?? ?while(number>0)?
?? ?{?
?? ??? ?data=number%16;?
?? ??? ?a[i]=data;?
?? ??? ?number=number/16;?
?? ??? ?i++;
?? ?}?
?? ?printf("輸入整數(shù)的十六進制數(shù): 0x");?
?? ?/*3. 輸出對應的16進制格式*/
?? ?for(i=i-1;i>=0;i--)
?? ?{
?? ??? ?printf("%c",hex_val[a[i]]);?
?? ?}?
?? ?printf("\n");?
}

到此這篇關(guān)于C語言封裝函數(shù)字符串練習匯總分享的文章就介紹到這了,更多相關(guān)C語言字符串內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言代碼 模塊化實現(xiàn)三子棋

    C語言代碼 模塊化實現(xiàn)三子棋

    這篇文章主要為大家詳細介紹了C語言 模塊化實現(xiàn)三子棋程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在

    VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在

    這篇文章主要介紹了VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在的相關(guān)資料,需要的朋友可以參考下
    2015-10-10
  • C語言三子棋小游戲的實現(xiàn)代碼

    C語言三子棋小游戲的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了C語言三子棋小游戲的實現(xiàn)代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 創(chuàng)建二叉樹 二叉樹如何刪除節(jié)點操作教程

    創(chuàng)建二叉樹 二叉樹如何刪除節(jié)點操作教程

    本文將詳細介紹二叉樹的創(chuàng)建,節(jié)點刪除,節(jié)點增加等一系列操作方法,需要的朋友可以參考下
    2012-12-12
  • 下標操作符重載模擬多維數(shù)組詳解

    下標操作符重載模擬多維數(shù)組詳解

    雖然不能直接實現(xiàn)一對下標操作符重載,但是我們可以間接模擬。思路是這樣的,先通過單下標操作返回一個具有下標操作能力的左值,對左值進行下標操作,兩個下標操作表達式聯(lián)立就實現(xiàn)了雙下標操作
    2013-09-09
  • Cocos2d-x學習筆記之Hello World!

    Cocos2d-x學習筆記之Hello World!

    這篇文章主要介紹了Cocos2d-x學習筆記之Hello World!本文基于vs2010和C++語言開發(fā),需要的朋友可以參考下
    2014-09-09
  • 如何寫好C main函數(shù)的幾個注意事項

    如何寫好C main函數(shù)的幾個注意事項

    這篇文章主要介紹了如何寫好C main函數(shù)的幾個注意事項,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • C語言淺析指針的使用

    C語言淺析指針的使用

    C語言這門課程在計算機的基礎(chǔ)教學中一直占有比較重要的地位,然而要想突破C語言的學習,對指針的掌握是非常重要的,本文將具體針對指針的基礎(chǔ)做詳盡的介紹
    2022-07-07
  • C++ 簡單實現(xiàn)MFC ListControl 點擊列頭排序

    C++ 簡單實現(xiàn)MFC ListControl 點擊列頭排序

    這篇文章主要介紹了C++ 簡單實現(xiàn)MFC ListControl 點擊列頭排序的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • 詳解C語言中for循環(huán)與while循環(huán)的用法

    詳解C語言中for循環(huán)與while循環(huán)的用法

    這篇文章主要通過幾個示例為大家介紹一下C語言中for循環(huán)與while循環(huán)的用法以及二者的區(qū)別,文中的代碼講解詳細,對我們學習C語言有一定幫助,需要的可以參考一下
    2022-07-07

最新評論