常用詞匯:

我們注重客戶提出的每個要求,我們充分考慮每一個細節(jié),我們積極的做好成都做網(wǎng)站、成都網(wǎng)站建設(shè)服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽,這一切,也不斷的激勵著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計,微信平臺小程序開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。
1、short:修飾int,短整型數(shù)據(jù),可省略被修飾的int。
2、long:修飾int,長整型數(shù)據(jù),可省略被修飾的int。
3、long long:修飾int,超長整型數(shù)據(jù),可省略被修飾的int。
4、signed:修飾整型數(shù)據(jù),有符號數(shù)據(jù)類型。
5、unsigned:修飾整型數(shù)據(jù),無符號數(shù)據(jù)類型。
6、restrict:用于限定和約束指針,并表明指針是訪問一個數(shù)據(jù)對象的唯一且初始的方式。
7、return:用在函數(shù)體中,返回特定值(如果是void類型,則不返回函數(shù)值)。
8、continue:結(jié)束當前循環(huán),開始下一輪循環(huán)。
9、break:跳出當前循環(huán)或switch結(jié)構(gòu)。
10、goto:無條件跳轉(zhuǎn)語句。
11、if:條件語句,后面不需要放分號。
12、else:條件語句否定分支(與if連用)。
13、switch:開關(guān)語句(多重分支語句)。
14、case:開關(guān)語句中的分支標記,與switch連用。
15、default:開關(guān)語句中的“其他”分支,可選。
常用函數(shù):
1、int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z'),返回非0值,否則返回0。
2、int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或數(shù)字('0'-'9'),返回非0值,否則返回0。
3、int abs(int i) 返回整型參數(shù)i的絕對值。
4、double cabs(struct complex znum) 返回復(fù)數(shù)znum的絕對值。
5、double fabs(double x) 返回雙精度參數(shù)x的絕對值。
6、long labs(long n) 返回長整型參數(shù)n的絕對值。
參考資料來源:百度百科—C語言
如果使用的是冒泡排序,那么和整數(shù)排序唯一的不同就是這個部分:
if(a[j]a[j+1])
swap(a[j],a[j+1]);
那么在字符串排序的時候,需要用到一個庫函數(shù)叫strcmp(char a[],char b[]);
這個函數(shù)在cstring庫中[或者c語言中在string.h庫中]
這個函數(shù)的用法就是輸入字符串a(chǎn),b,判斷a,b的字典序大小.
若a的字典序小返回負值
若a的字典序和b相同返回0
若a的字典序大于b的字典序返回正數(shù)
然后你將上面冒泡的部分改一下的話就是:
if(strcmp(a[j],a[j+1])0)
swap(a[j],a[j+1]);
這樣的話就可以實現(xiàn)冒泡排序了.
如果你使用的是系統(tǒng)快排的話,你可以用string,也可以定義一個結(jié)構(gòu)體
struct?Node{
char?ch[1000];
}s[12];
bool?cmp(const?Node?A,const?Node?B){
return?strcmp(A.ch,B.ch)0;
}
int?main(){
...
sort(s+1,s+10+1,cmp);
...
}
這樣的話也是可以實現(xiàn)的.
#include stdafx.h //這行是VC編譯時要的頭文件,你若TC就不要本行了
#include stdio.h
typedef struct dictnode{char *key; char *value; dictnode *pre; dictnode *next;} DictNode;
DictNode *pHead = NULL;
//(1)make:構(gòu)造空的字典
int make()
{
if(pHead)return -1;
pHead = (DictNode*)malloc(sizeof(DictNode));
memset(pHead,0,sizeof(DictNode));
pHead-pre = pHead;
pHead-next = pHead;
return 0;
}
//(2)size:返回字的字典中記錄數(shù)
int size()
{
int i;
DictNode*p;
for(i=0,p=pHead; p-next!=pHead; p=p-next,i++);
return i;
}
//(3)IsEmpy:如果字典為空則返回真,否則返回假
int IsEmpy()
{
return (pHead-pre==pHead);
}
//(4)Clear:將字典重置為空
void Clear()
{
DictNode* p,*ptmp;
for(p=pHead-next; p!=pHead ; )
{
ptmp = p;
p = p-next;
free(ptmp-key);
free(ptmp-value);
free(ptmp);
}
pHead-next = pHead-pre = pHead;//最后一個空節(jié)點也是第一個節(jié)點
}
//(5)Insert:插入記錄到字典
int Insert(char *key,char*value)
{
DictNode* p, *ptmp;
if(!key||!value||!*key||!*value) return -100;//調(diào)用錯誤
ptmp = (DictNode*)malloc(sizeof(DictNode));
if(!ptmp) return -2; //內(nèi)存不足這種極端的情況很難出現(xiàn),但有可能
memset(ptmp,0,sizeof(DictNode));
ptmp-key =(char*) malloc(strlen(key)+1);
if(!ptmp-key){free(ptmp);return -2;} //內(nèi)存不足這種極端的情況很難出現(xiàn),但有可能
strcpy(ptmp-key,key);
ptmp-value = (char*)malloc(strlen(value)+1);
if(!ptmp-value){free(ptmp-key);free(ptmp); return -2;} //內(nèi)存不足這種極端的情況很難出現(xiàn),但有可能
strcpy(ptmp-value,value);
for(p=pHead-next; p-next!=pHead; p=p-next) if(p-key!strcmp(p-key,key)) return 1;//記錄存在,插入失敗
ptmp-next = pHead; pHead-pre = ptmp;
ptmp-pre = p; p-next = ptmp;
return 0;//操作成功返回0
}
//(6)remove:與給定關(guān)鍵字的記錄相同則刪除,該記錄被返回,否則字典保持不變
DictNode* remove(char *key)
{
DictNode* p;
for(p=pHead-next; p!=pHeadstrcmp(p-key,key); p=p-next);
if(p==pHead) return NULL;
p-pre-next = p-next;
p-next-pre = p-pre;
p-pre = p-next = NULL;
return p;//結(jié)點p的空間(key value p三個)沒有釋放,外面要接收返回值并主動釋放結(jié)點空間或做別的處理如插入另一表中等
}
//(7)IsPrensent:如果存在與給定關(guān)鍵字匹配的記錄則返回真,否則返回假
int IsPrensent(char *key)
{
DictNode* p;
for(p=pHead-next; p!=pHeadstrcmp(p-key,key); p=p-next);
return (p!=pHead);
}
//(8)Find:如果存在與給定關(guān)鍵字相同的記錄,則返回記錄;如果沒有找到,則返回空
DictNode* Find(char *key)
{
DictNode* p;
for(p=pHead-next; p!=pHeadstrcmp(p-key,key); p=p-next);
if(p==pHead) return NULL;
return p; //不要對Find返回的記錄key值做變更,value值可以修改,value加長時要重新分配空間。因為記錄還在字典鏈表中
}
void main()
{
const char *prtstr = "****************************";
DictNode* ptmp;
char keybuf[80];
char valuebuf[1024];
int c;
make();
while(1)
{
system("cls");//清屏
printf("%s 選擇菜單 %s",prtstr,prtstr);
printf("\n\tF---詞條查找\n\tI---插入新詞條\n\tR---刪除詞條\n\tC---清空字典\n\tS---顯示字典詞條數(shù)\n\tQ---退出\n");
printf("請選擇操作菜單:");
fflush(stdin);
c = getchar();
if(c='a'c='z') c -= ('a'-'A');//換大寫
if(c!='F'c!='I'c!='R'c!='C'c!='S'c!='Q') continue;
fflush(stdin);
switch(c)
{
case 'F':
printf("詞條查找:\n請輸入Key值:");scanf("%s",keybuf);
fflush(stdin);
ptmp = Find(keybuf);
if(ptmp){printf("Key:%s Value:%s",ptmp-key,ptmp-value);}
else{printf("沒找到詞條:%s,你可以先選擇插入這個新詞條",keybuf);}
break;
case 'I':
printf("插入新詞條:\n請輸入Key值:");scanf("%s",keybuf);
fflush(stdin);
if(IsPrensent(keybuf)){printf("詞條%s已存在\n",keybuf);}
else
{
printf("請輸入它的解釋:");gets(valuebuf);
if(!Insert(keybuf,valuebuf))printf("插入成功\n");
else printf("插入失敗\n");
}
break;
case 'R':
printf("刪除詞條:\n請輸入Key值:");scanf("%s",keybuf);
fflush(stdin);
ptmp = remove(keybuf);
if(ptmp)
{
free(ptmp-value);free(ptmp-key);free(ptmp);
printf("記錄key:[%s]已刪除\n",keybuf);
}
else
printf("未找到待刪除的記錄key:[%s]\n",keybuf);
break;
case 'C':
printf("清空字典:\n真的要清嗎?\n請輸入Yes以確認刪除操作(首字母大寫):");scanf("%s",keybuf);
fflush(stdin);
if(strcmp(keybuf,"Yes")){printf("放棄了清空操作\n");}
else {Clear();printf("Ok,你堅持操作,現(xiàn)在字典已清空了\n");}
break;
case 'S':
printf("顯示字典詞條數(shù):\n當前詞條總數(shù):%d\n", size());
break;
case 'Q':
Clear(); free(pHead);
printf("Byebye");
exit(0);
}
printf("\n按回車鍵繼續(xù)......");
fflush(stdin);
getchar();
}
}
//VC7.1 下調(diào)試通過,運行功能正常
#include iostream
#include map
#include cstdio
#include string
using namespace std ;
mapstring,string m ;
int main( )
{
char s[42] , *p , *q ;
int i ;
while( gets( s ) s[0] != '\0' )
{
p = strtok( s , " " ) ;
q = strtok( NULL , " " ) ;
m[q] = p ;
}
while( ~scanf("%s", s ) )
{
if( m.find( s ) != m.end() )
printf("%s\n", m[s].c_str() ) ;
else
printf("eh\n") ;
}
return 0 ;
}
當前標題:c語言庫函數(shù)字典,C語言常用庫函數(shù)
標題來源:http://chinadenli.net/article29/dsejcch.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站維護、App開發(fā)、手機網(wǎng)站建設(shè)、軟件開發(fā)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)