C語言封裝函數(shù)字符串練習匯總分享
封裝函數(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)文章
VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在
這篇文章主要介紹了VC++ 使用 _access函數(shù)判斷文件或文件夾是否存在的相關(guān)資料,需要的朋友可以參考下2015-10-10創(chuàng)建二叉樹 二叉樹如何刪除節(jié)點操作教程
本文將詳細介紹二叉樹的創(chuàng)建,節(jié)點刪除,節(jié)點增加等一系列操作方法,需要的朋友可以參考下2012-12-12C++ 簡單實現(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)的用法以及二者的區(qū)別,文中的代碼講解詳細,對我們學習C語言有一定幫助,需要的可以參考一下2022-07-07