国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

香港云服务器
服務(wù)器之家 - 編程語言 - C/C++ - c語言中字符串與字符串?dāng)?shù)組詳解

c語言中字符串與字符串?dāng)?shù)組詳解

2022-02-25 14:46crazy_zhangcong C/C++

在C語言當(dāng)中,字符串?dāng)?shù)組可以使用char a[] [10]; 或者char *a[]; 表示,下面這篇文章主要給大家介紹了關(guān)于c語言中字符串與字符串?dāng)?shù)組的相關(guān)資料,需要的朋友可以參考下

字符串

  • 用雙引號引起來的就是字符串,字符串由字符組成
  • 字符串使用%s格式化輸出
  • 字符串以\0結(jié)尾,沒有\(zhòng)0就不是字符串
  • 只要是用雙引號括起來的都是字符串
  • 字符串的本質(zhì)就是數(shù)組
    注意: 字符串變量和普通的字符數(shù)組有一定的區(qū)別,C語言規(guī)定,字符串必須以\0結(jié)尾(作為字符串的結(jié)束符號),所以字符串變量的元素個數(shù)比字符數(shù)組的元素多一個\0
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
 
int main(int argc, const char * argv[]) {
    
    char name[] = "zhangsan";
    
    // %u 表示無符號,sizeof 返回的是一個無符號長整型
    printf("name --> %s  size --> %lu\n", name, sizeof(name));      // name --> zhangsan  size --> 9
    
    // 字符串本質(zhì)就是一個字符數(shù)組,前提是末尾以\0結(jié)尾
    char name1[] = {'z', 'h', 'a', 'n', 'g', 's', 'a', 'n', '\0'};
    printf("name1 --> %s\n", name1);    // name1 --> zhangsan
    
    // 部分初始化中,沒有被初始化的元素默認(rèn)是0, \0 對應(yīng)的ASCII值是 0
    char name2[9] = {'z', 'h', 'a', 'n', 'g', 's', 'a', 'n'};
    printf("name2 --> %s\n", name2);    // name2 --> zhangsan
    
    // 字符串的本質(zhì)就是數(shù)組
    char name3[] = "lisi";
    printf("name3 --> %s \n", name3);   // name3 --> lisi
    name3[0] = 'x';
    printf("name3 --> %s \n", name3);   // name3 --> xisi
   
 
    return 0;
}

字符串輸出

字符串輸出可以使用printf 和 puts 進(jìn)行輸出,各有利弊

- 輸出字符串
 - 使用printf的%s占位符輸出
  - 弊端:如果想要換行,必須加上\n
  - 優(yōu)點:可以自定義格式化需要的字符串,也就是可以按照我們需要的格式來輸出
 - 使用puts函數(shù)進(jìn)行輸出
  - 優(yōu)點:可以自動換行
  - 缺點:不可以自定義格式,只能原樣輸出

?
1
2
3
4
5
6
7
8
9
// printf
char str[] = “lisi”;
printf(“name = %s!!!\n”, str);
printf("-----\n");
 
// puts
// 自動換行,只能原樣輸出
puts(str);
printf("----\n");

#### 字符串輸入

字符串輸入可以使用 scanf 和 gets 進(jìn)行輸入,各有利弊

輸入字符串

  • 使用scanf的%s占位符接收鍵盤輸入的字符串
    • scanf 接收字符串,會以空格,tab,回車作為結(jié)束符號,利用scanf接收字符串時,字符串不能出現(xiàn)空格,tab,回車
  • 使用gets接收字符串
?
1
2
3
4
5
6
7
8
9
10
11
12
// scanf
printf("請輸入一個字符串:\n");
char buf[10];
scanf("%s", buf);   // 輸入:fdsa fdas
printf("buf --> %s\n", buf);    // buf --> fdsa
 
 
// gets
char buf[10];
printf("請輸入一個字符串,使用gets接收:\n");
gets(buf);
printf("buf --> %s\n", buf);    // buf --> fdsaf fdsa

字符串常用方法

計算字符串的長度

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <string.h>
 
// 申明函數(shù)
int stringLen(char value[]);
 
 
int main(int argc, const char * argv[]) {
    
    char string[] = "zhangsan";
    
    // 計算字符串的長度,不包括末尾\0的長度
    
    // 調(diào)用系統(tǒng)內(nèi)置函數(shù)strlen 計算字符串的長度,需要先導(dǎo)入 string.h 頭文件
    size_t length = strlen(string);     // lenght --> 8
    printf("lenght --> %lu\n", length);
    
    
    // 自定義計算字符串長度的函數(shù)
    int length2 = stringLen(string);
    printf("length2 --> %i\n", length2);    // length2 --> 8
    return 0;
}
 
// 自定義計算字符串長度的函數(shù)
int stringLen(char value[]) {
    int count = 0;
    while (value[count] != '\0') {
        count ++;
    }
    return count;
}

字符串拼接

使用內(nèi)置方法strcat進(jìn)行2個字符串拼接,將后者拼接到前者后面,前提是前者空余的長度要大于后者的長度,否則會報錯

使用內(nèi)置方法strncat進(jìn)行2個字符串拼接,可以指定將后者的前多少個字符與前者進(jìn)行拼接

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 字符串拼接
char str1[20] = "hello";
char str2[10] = " world";
 
printf("str1拼接前 --> %s\n", str1);        // str1拼接前 --> hello
printf("str2拼接前 --> %s\n", str2);        // str2拼接前 -->  world
strcat(str1, str2);
printf("\n");
printf("str1拼接后 --> %s\n", str1);        // str1拼接后 --> hello world
printf("str2拼接后 --> %s\n", str2);        // str2拼接后 -->  world
 
// 使用 strncat 可以指定將后者的前多少個字符與前者進(jìn)行拼接
strncat(str1, str2, 3);     // 最后一個參數(shù)3表示指定str2的前多少個字符拼接到str1后面
printf("str1拼接后 --> %s\n", str1);        // str1拼接后 --> hello world wo
printf("str2拼接后 --> %s\n", str2);        // str2拼接后 -->  world

字符串拷貝

strcpy 函數(shù)會將源的數(shù)據(jù)拷貝到目錄中,并且會覆蓋掉目標(biāo)中原有的數(shù)據(jù),目標(biāo)的長度必須能夠存放拷貝的數(shù)據(jù),長度不夠會報錯

strncpy 函數(shù)在strcpy函數(shù)的基礎(chǔ)之上,增加一個參數(shù),可以指定拷貝幾個字符0

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 將str2中的內(nèi)容拷貝到str1中
char str1[20] = "hello";
char str2[] = " world!";
 
printf("str1 拷貝前 --> %s\n", str1);      // str1 --> hello
printf("str2 拷貝前 --> %s\n", str2);      // str2 -->  world!
strcpy(str1, str2);
printf("str1 拷貝后 --> %s\n", str1);      // str1 -->  world!
printf("str2 拷貝后 --> %s\n", str2);      // str2 -->  world!
 
// strncpy 函數(shù)在strcpy函數(shù)的基礎(chǔ)之上,增加一個參數(shù),可以指定拷貝幾個字符
char str3[20] = "hello";
char str4[] = "_world!";
strncpy(str3, str4, 2);
printf("str3 拷貝后 --> %s\n", str3);      // str3 拷貝后 --> _wllo
printf("str4 拷貝后 --> %s\n", str4);      // str4 拷貝后 --> _world!

字符串比較

strcmp 會對傳入的字符串進(jìn)行比較,比較完畢后會返回一個整型的值

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
    int result = strcmp(str1, str2)
    如果result等于0,證明兩個字符串相等
    如果result小于0,證明str1小于str2
    如果result大于0,證明str1大于str2
*/
 
char str1[] = "abc";
char str2[] = "abc";
int result = strcmp(str1, str2);
printf("result --> %i\n", result);  // result --> 0
 
char str1[] = "ab1";
char str2[] = "abc";
int result = strcmp(str1, str2);
printf("result --> %i\n", result);  // result --> -50
 
char str1[] = "absadsa";
char str2[] = "abc";
int result = strcmp(str1, str2);
printf("result --> %i\n", result);  // result --> 16

字符串?dāng)?shù)組

如果想存儲一堆字符串可以使用字符串?dāng)?shù)組,字符串?dāng)?shù)組就是二維數(shù)組

?
1
2
3
4
5
char names[5][20] = {
    "zhangsan",
    "lisi",
    "wangwu",
}

總結(jié)

到此這篇關(guān)于c語言中字符串與字符串?dāng)?shù)組的文章就介紹到這了,更多相關(guān)c語言字符串與字符串?dāng)?shù)組內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/crazy_zhangcong/article/details/88112493

延伸 · 閱讀

精彩推薦
  • C/C++C語言實現(xiàn)電腦關(guān)機程序

    C語言實現(xiàn)電腦關(guān)機程序

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)電腦關(guān)機程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    c++ 單線程實現(xiàn)同時監(jiān)聽多個端口

    這篇文章主要介紹了c++ 單線程實現(xiàn)同時監(jiān)聽多個端口的方法,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++學(xué)習(xí)C++編程的必備軟件

    學(xué)習(xí)C++編程的必備軟件

    本文給大家分享的是作者在學(xué)習(xí)使用C++進(jìn)行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內(nèi)存中的數(shù)據(jù)都是暫時的,當(dāng)程序結(jié)束時,它們都將丟失,為了永久性的保存大量的數(shù)據(jù),C語言提供了對文件的操作,這篇文章主要給大家介紹了關(guān)于C語言中文件...

    針眼_6702022-01-24
  • C/C++深入理解goto語句的替代實現(xiàn)方式分析

    深入理解goto語句的替代實現(xiàn)方式分析

    本篇文章是對goto語句的替代實現(xiàn)方式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下...

    C語言教程網(wǎng)7342020-12-03
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    詳解c語言中的 strcpy和strncpy字符串函數(shù)使用

    strcpy 和strcnpy函數(shù)是字符串復(fù)制函數(shù)。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數(shù)使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C/C++經(jīng)典實例之模擬計算器示例代碼

    C/C++經(jīng)典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關(guān)于C/C++經(jīng)典實例之模擬計算器的相關(guān)資料,文中通過示...

    jia150610152021-06-07
396
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久久夜夜夜 | a视频在线 | 亚洲精品视频一区二区三区 | 色视频在线看 | 免费伊人网| 欧美精品一区二区在线观看 | 不卡一区二区三区四区 | 成人在线视频观看 | 五月综合激情 | www一区 | 免费在线观看毛片 | 精品国产乱码久久久久久久软件 | 亚洲男人网 | 黄色片网站 | 不卡一二三区 | 亚洲成人在线播放视频 | 国产一区二区在线视频 | 欧美成人黄色网 | 97人人干 | 日韩精品网站 | 亚洲国产精品99久久久久久久久 | 欧美在线一区二区三区 | 中文字幕一区在线观看视频 | 91高清在线观看 | 北条麻妃一区二区三区在线观看 | 自拍视频在线 | 一级免费视频 | 久久九九国产精品 | 久久久综合网 | 91 在线观看| 成人三区 | 成人免费视频在线观看 | 国产一级在线 | 18视频在线观看网站 | 日韩av网页 | 午夜大片男女免费观看爽爽爽尤物 | 一区二区三区免费 | 国产视频亚洲 | 国产91在线观看 | 成人免费福利 | 精品九九久久 |