青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

朗朗空間

我知道并不是 所有鳥兒都飛翔

  C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

常用鏈接

留言簿(1)

我參與的團(tuán)隊(duì)

搜索

  •  

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

1.strncmp ()函數(shù)
strncmp ()函數(shù)可以比較到字符串的不同處,也可以比較完由第三個(gè)參數(shù)指定的字符串。
例如,如果想搜索以”astro”開頭的字符串,您可以限定搜索前5個(gè)字符。

//使用strncmp ()函數(shù)
#include <stdio.h>
#inlcude <string.h>
 
#define LISTSIZE 5
 
int main (void)
{
    
char * list[LISTSIZE] = {
                
"astronomy", "astounding",
                
"astrophysics", "ostracize",
                
"asterism"   
                
};
    
int count = 0;
    
int i;
    
    
for (i=0; i < LISTSIZE; i++)
    
{
        
if (strncmp (list[i], "astro", 5) == 0)
        
{
            
printf ("Found: %s\n", list[i]);
            
count++;
        
}
    
}
    
    
printf ("The list contained %d words beginning with astro.\n", count);
    
    
return 0;
}

2.strcpy () 和strncpy ()函數(shù)
如果pts1和pts2都是指向字符串的指針,則下面的表達(dá)式只復(fù)制字符串的地址而不是字符串本身。

pts1 = pts2;

如果你確實(shí)希望復(fù)制字符串,那么可以使用strcpy ()函數(shù)。

//copy1.c strcpy ()示例
#include <stdio.h>
#include <string.h> //聲明strcpy ()函數(shù)
#define SIZE 40
#define LIM 5
 
int main (void)
{
    
char qwords[LIM][SIZE];
    
char temp[SIZE];
    
int i = 0;
 
    
printf ("Enter %d words beginning with q:\n", LIM);
    
while (i < LIM && gets(temp))
    
{
        
if (temp[0] != 'q')
        
{
            
printf ("%s doesn't begin with q!\n", temp);
        
}
        
else
        
{
            
strcpy (qwords[i], temp);
            
i++;
        
}       
    
}
    
puts ("Here are the words accepted:");
    
for (i=0; i < LIM; i++)
    
{
        
puts (qwords[i]);
    
}
 
    
return 0;
}

請(qǐng)注意只有當(dāng)輸入的單詞通過(guò)了q判斷,計(jì)數(shù)值i才會(huì)增加。
這里使用了一個(gè)基于字符的判斷

if (temp[0] != 'q')

這相當(dāng)于

if (strncmp (temp, "q", 1) != 0)

注意在,strcpy 兩個(gè)參數(shù)中,第二個(gè)參數(shù)temp指向的字符串被復(fù)制到第一個(gè)參數(shù)qword[i]所指向的數(shù)組中。
temp被稱為源字符串,qword被稱為目標(biāo)字符串。
為什么要這么設(shè)計(jì),為什么不設(shè)計(jì)到前面?
如果注意到它和賦值語(yǔ)句的順序一樣,目標(biāo)在左邊,就很容易記住參數(shù)的順序。

3.strcpy ()的其它特性
首先,它是一個(gè)char *類型,它返回的是第一個(gè)參數(shù)的值。
第二,第一個(gè)參數(shù)不需要指向數(shù)組的開始,這樣就可以只復(fù)制數(shù)組的一部分。

//copy2.c
#include <stdio.h>
#include <string.h>
#define WORDS "beast"
#define SIZE 40
 
int main (void)
{
    
char *orig = WORDS;
    
char copy[SIZE] = "Be the best that you can be.";
    
char *ps;
 
    
puts (orig);
    
puts (copy);
    
ps = strcpy (copy + 7, orig);
    
puts (copy);
    
puts (ps);
 
    
return 0;
}

注意ps指向copy的第8個(gè)元素,這是因?yàn)榈谝粋€(gè)參數(shù)是copy + 7。

4. strncpy ()
strcpy ()的缺點(diǎn)顯而易見,它不檢查目標(biāo)字符串是否能容納得下源字符串。
strncpy ()會(huì)用第三個(gè)參數(shù)指明最大可復(fù)制的字符數(shù)。

//copy3.c strncpy ()示例
#include <stdio.h>
#include <string.h> //聲明strcpy ()函數(shù)
#define SIZE 40
#define TARGSIZE 7
#define LIM 5
 
int main (void)
{
    
char qwords[LIM][TARGSIZE];
    
char temp[SIZE];
    
int i = 0;
 
    
printf ("Enter %d words beginning with q:\n", LIM);
    
while (i < LIM && gets(temp))
    
{
        
if (temp[0] != 'q')
        
{
            
printf ("%s doesn't begin with q!\n", temp);
        
}
        
else
        
{
            
strncpy (qwords[i], temp, TARGSIZE - 1);
            
qwords[i][TARGSIZE-1] = '\0';
            
i++;
        
}       
    
}
    
puts ("Here are the words accepted:");
    
for (i=0; i < LIM; i++)
    
{
        
puts (qwords[i]);
    
}
 
    
return 0;
}

注意,在這里函數(shù)復(fù)制的字符串可能最后沒(méi)有空字符,所以你必須手動(dòng)在最后放置一個(gè)空字符,而且注意這里是復(fù)制n個(gè)字符過(guò)去,所以要留一個(gè)給空字符

,所以在這里是TARGSIZE - 1;

strncpy (qwords[i], temp, TARGSIZE - 1);
qwords[i][TARGSIZE-1] = '\0';

5.sprintf ()函數(shù)
sprintf ()函數(shù)是在stdio.h而不是在string.h中聲明的。
它的作用和printf ()一樣,但是它寫到字符串里而不是寫到輸出顯示。
它提供了把幾個(gè)元素組合成一個(gè)字符串的一種途徑。
sprintf ()的第一個(gè)參數(shù)是目標(biāo)字符串地址。

//format.c
#include <stdio.h>
#define MAX 20
 
int main (void)
{
    
char first[MAX];
    
char last[MAX];
    
char formal[2 * MAX + 10];
    
double prize;
 
    
puts ("Enter your first name: ");
    
gets (first);
    
puts ("Enter your last name: ");
    
gets (last);
    
puts ("Enter your prize money: ");
    
scanf ("%1f", prize);
    
sprintf (formal, "%s, %-19s: $%6.2f\n", last, first, prize);
    
puts (formal);
 
    
return 0;
}

6.其它字符串函數(shù)

char *strcpy (char * s1, const char * s2);

該函數(shù)把s2指向的字符串(包括空字符)復(fù)制到s1指向的位置,返回值是s1。

char *strncpy (char * s1, const char *s2, size_t n);

該函數(shù)把s2指向的字符串(包括空字符)復(fù)制到s1指向的位置,復(fù)制的字符數(shù)不超過(guò)n個(gè)。返回值是s1。
空字符后的字符串不被復(fù)制。
如果源字符串的字符數(shù)小于n個(gè),在目標(biāo)字符串中就以空字符填充。
如果源字符串的字符數(shù)大于或等于n個(gè),空字符就不被復(fù)制。返回值是s1。

char *strcat (char *s1, const char *s2);

s2指向的字符串(包括空字符)復(fù)制到s1指向的結(jié)尾。復(fù)制過(guò)來(lái)的s2覆蓋了s1的空字符。返回值為s1。

char *strncat (char *s1, const char *s2);

s2指向的字符串中的前n個(gè)字符(包括空字符)復(fù)制到s1指向的結(jié)尾。復(fù)制過(guò)來(lái)的s2覆蓋了s1的空字符。
s2字符串中的空字符及其后的任何字符都不會(huì)被復(fù)制,并且追加一個(gè)空字符到所得結(jié)果后面。
返回值為s1。

int strcmp (const char *s1, const char *s2);

如果s1字符串在機(jī)器編碼順序中落后于s2字符串,函數(shù)的返回值是一個(gè)正數(shù);如果兩個(gè)字符串相同,返回值是0;
如果第一個(gè)字符串在機(jī)器編碼順序中先于第二個(gè)字符串,返回值是一個(gè)負(fù)數(shù)。

int strncmp (const char *s1, const char *s2);

該函數(shù)作用和strcmp ()一樣,只是比較n個(gè)字符后或者遇見第一個(gè)空字符時(shí)會(huì)停止比較。

char *strchr (const char *s1, int c);

該函數(shù)返回一個(gè)指向字符串s中存放字符c的第一個(gè)位置的指針(標(biāo)志結(jié)束的空字符是字符串的一部分,因此也可以搜索到它)。
如果沒(méi)有找到該字符,函數(shù)就返回空指針。

char *strpbrk (const char *s1, const char *s2);

該函數(shù)返回一個(gè)指針,指向字符串s1中存放s2字符串的任何字符的第一個(gè)位置。如果沒(méi)有找到該字符。如果沒(méi)找到任何字符,返回空指針。

char *strrchr (const char * s, int c);

該函數(shù)返回一個(gè)指針,指向字符串s中字符c最后一次出現(xiàn)的地方。(標(biāo)志結(jié)束的空字符是字符串的一部分,因此也可以搜索到它)。
如果沒(méi)有找到該字符,函數(shù)就返回空指針。

char *strstr (const char *s1, const char *s2)

該函數(shù)返回一個(gè)指針,指向s1字符串中第一次出現(xiàn)s2字符串的地方。如果在s1中沒(méi)找到s2字符串,函數(shù)就返回空指針。

size_t strlen (const char *s);

返回字符串的長(zhǎng)度。

簡(jiǎn)單應(yīng)用:
在用fgets ()函數(shù)時(shí),讀取一行輸入,這個(gè)函數(shù)把換行符存儲(chǔ)到目標(biāo)字符串中。
我們可以使用strchr ()函數(shù)來(lái)用一個(gè)空字符替換這個(gè)換行符。

char line [80];
char * find;
 
fgets (line, 80, stdin);
find = strchr (line, '\n');
if (find)
{
    *
find = '\0';
}
posted on 2008-05-06 15:28 聶元朗 閱讀(730) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C語(yǔ)言學(xué)習(xí)筆記
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品一区久久久久| 亚洲欧美激情一区| 日韩亚洲一区在线播放| 欧美日韩岛国| 亚洲午夜精品一区二区三区他趣| 亚洲欧美欧美一区二区三区| 国产精品夜夜嗨| 久久久不卡网国产精品一区| 亚洲国产精品一区二区www| 亚洲毛片在线看| 国产精品久久网站| 久久久青草青青国产亚洲免观| 欧美激情一区二区| 亚洲一区二区三区高清| 国产一区免费视频| 欧美国产日本韩| 日韩一区二区精品| 久久天天躁狠狠躁夜夜av| 亚洲国产毛片完整版 | 欧美高清你懂得| 亚洲视频香蕉人妖| 韩国在线视频一区| 欧美日韩另类国产亚洲欧美一级| 香蕉国产精品偷在线观看不卡| 欧美成人一区二区三区| 亚洲一区二区在线免费观看视频| 国内精品久久久久久久影视麻豆| 欧美极品aⅴ影院| 欧美有码在线观看视频| 亚洲精品视频中文字幕| 久久婷婷亚洲| 午夜精品一区二区三区四区 | 欧美日本国产在线| 欧美中文字幕不卡| 一区二区三区 在线观看视| 蜜臀va亚洲va欧美va天堂| 亚洲女同在线| 亚洲毛片在线观看.| 国内成人在线| 国产精品欧美一区二区三区奶水| 欧美顶级大胆免费视频| 欧美在线观看一区二区| 在线中文字幕日韩| 亚洲人成在线播放| 久久综合狠狠综合久久综合88| 亚洲自拍偷拍一区| 亚洲每日更新| 亚洲国产美女| 精品av久久久久电影| 国产精品一区二区男女羞羞无遮挡 | 欧美日韩福利在线观看| 久久香蕉国产线看观看网| 小辣椒精品导航| 在线亚洲一区二区| 亚洲免费成人av电影| 亚洲第一区中文99精品| 美女精品在线| 麻豆9191精品国产| 久久久久久亚洲精品杨幂换脸| 午夜精品久久久久久久99黑人| 一本色道久久综合狠狠躁篇的优点 | 农村妇女精品| 久久躁日日躁aaaaxxxx| 久久av一区二区三区亚洲| 亚洲欧美日韩国产中文| 亚洲新中文字幕| 亚洲视屏一区| 亚洲尤物精选| 午夜精品国产更新| 欧美一区二区黄色| 欧美影片第一页| 久久国产精品亚洲va麻豆| 欧美亚洲在线观看| 久久精品久久99精品久久| 久久国产精品72免费观看| 久久高清一区| 久久免费精品日本久久中文字幕| 久久国产精品72免费观看| 欧美一区在线直播| 久久综合九色综合久99| 麻豆精品精华液| 亚洲国产成人久久| 最新高清无码专区| aa级大片欧美三级| 亚洲天堂成人在线视频| 亚洲欧美日韩视频二区| 欧美在线观看一区| 欧美+亚洲+精品+三区| 欧美了一区在线观看| 国产精品久久久久aaaa樱花| 国产精品亚发布| 激情欧美日韩| 日韩网站在线| 欧美在线不卡视频| 欧美成年人网| 一区二区三区国产| 欧美一区二区精品| 欧美成人性生活| 国产精品久久婷婷六月丁香| 国内精品久久久久影院色| 91久久精品国产91久久| 亚洲线精品一区二区三区八戒| 午夜一级久久| 欧美激情第五页| 亚洲视频在线二区| 久久手机免费观看| 欧美三级日本三级少妇99| 国产视频在线观看一区二区| 亚洲欧洲一区| 性一交一乱一区二区洋洋av| 欧美mv日韩mv国产网站| 9色porny自拍视频一区二区| 欧美在线播放高清精品| 欧美激情欧美激情在线五月| 国产日韩一级二级三级| 亚洲三级色网| 久久狠狠久久综合桃花| 亚洲国产另类久久久精品极度| 亚洲小说春色综合另类电影| 久久噜噜亚洲综合| 国产精品久久久久久久浪潮网站| 在线精品在线| 性色av一区二区三区红粉影视| 亚洲电影观看| 久久国产精品久久w女人spa| 欧美日韩一区二区免费在线观看| 国产综合久久久久影院| 亚洲综合精品四区| 欧美韩国在线| 久久成人综合网| 国产精品高潮久久| 亚洲另类在线视频| 久久中文在线| 午夜精品三级视频福利| 欧美日韩一卡| 亚洲精品少妇| 久久噜噜亚洲综合| 午夜精品剧场| 欧美天天在线| 一本一本久久a久久精品牛牛影视| 久久亚洲综合| 香蕉成人久久| 国产模特精品视频久久久久| 亚洲视频在线观看网站| 亚洲激情视频网站| 免费永久网站黄欧美| 樱桃成人精品视频在线播放| 欧美一区二区女人| 亚洲一区区二区| 欧美视频手机在线| 在线视频精品一| 亚洲精品日韩激情在线电影 | 黄色精品免费| 久久久水蜜桃av免费网站| 午夜精品久久久久久久久久久久久 | 国产一区二区高清不卡| 午夜亚洲福利| 亚洲中无吗在线| 国产精品一区二区黑丝| 午夜精品久久久| 亚洲中字在线| 国产日韩欧美二区| 久久国产精品久久久| 香蕉免费一区二区三区在线观看| 国产乱码精品| 久久久福利视频| 久久激情视频| 亚洲高清av在线| 亚洲二区视频在线| 欧美区一区二| 亚洲综合视频网| 亚洲女性裸体视频| 国语自产精品视频在线看| 久久深夜福利免费观看| 久久久久99| 亚洲激情黄色| 日韩视频亚洲视频| 国产精品丝袜白浆摸在线| 久久久久免费视频| 老鸭窝亚洲一区二区三区| 亚洲人成人一区二区三区| 亚洲精品免费观看| 国产精品免费区二区三区观看| 香蕉久久国产| 久久久中精品2020中文| 日韩一级裸体免费视频| 一区二区三区四区国产精品| 国产日韩亚洲欧美综合| 欧美激情91| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 欧美高清在线视频| 欧美日韩国产综合久久| 欧美亚洲一区二区在线观看| 久久九九有精品国产23| 99视频超级精品| 午夜精品福利一区二区蜜股av| 一区二区在线看| 一区二区精品在线| 激情丁香综合| 日韩性生活视频|