1. 程式人生 > >c語言字串陣列的兩種表示方法

c語言字串陣列的兩種表示方法

字串陣列
1. 定義

  字串陣列:一個數組中的所有的元素都是字串。  

  如果想儲存一堆字串那麼可以使用字串陣列,說白了字串陣列就是二維陣列

  字串陣列兩種表示:

第一種:char strr[4][6] = {"aaa", "bbb", "ccc"}; //char型別的二維陣列
第二種:char *str[4] = {"aaa", "bbb", "ccc"}; //char*型別的一維陣列

這裡解析一下第二種表示方法:str是一個一維陣列,而且數組裡面的每一個元素都是一個char型別值的地址。第一個指標是str[0],它指向第一個字串的第一個字元。第二個指標是str[1],它指向第二個字串的第一個字元。即一般地每一個指標指向相應字串的的第一個字元:

*str[0]=='a',*str[1]=='b',*str[2]=='c'

以此類推,str陣列實際上並不存放字串,它只是存放字串的地址(字串存在程式用來存放常量的那部分記憶體中)。可以把str[0]看作第一個字串。由於陣列符號與指標的關係,也可以用str[0][0]來表示第一個字串中的第一個字元,儘管str沒有被定義為二維陣列。

示例如下:

這裡寫圖片描述

這裡寫圖片描述

相關推薦

c語言字串陣列表示方法

字串陣列 1. 定義   字串陣列:一個數組中的所有的元素都是字串。     如果想儲存一堆字串那麼可以使用字串陣列,說白了字串陣列就是二維陣列   字串陣列兩種表示: 第一種:char strr[4][6] = {"aaa", "bbb", "ccc

C語言字串的三表示方法

1.在C語言中,是將字串作為字元陣列來處理的,字串是逐個存放到陣列元素中的,例如用一個一維的字元陣列存放字串"I am a boy.",如下程式碼:char c[12] = {'I','a','m','a','b','o','y','.'};這個字串的實際長度是11,陣列長度

C++ 拼接字串方法

#include <iostream> #include <iomanip> #include <cstdio> #include <cstring> #include <sstream> usin

C語言編程 方法打印一個菱形(漸入顯示)

nag 支持 一個 left c語言 stdio.h watermark char () <1>第一種方法,利用字符數組定義一個空格數組和一個符號數組, 然後找到數組中間的元素,操作空格字符從中間開始向兩邊與符號數組的元素互換, 每互換一次進行一次輸出,打印上半

BZOJ 2101 [Usaco2010 Dec]Treasure Chest 藏寶箱:區間dp 博弈【表示方法】【壓維】

space print 而且 problem 所有 php 一條直線 題解 bzoj 題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=2101 題意:   共有n枚金幣,第i枚金幣的價值是w[i]。   把金幣排成一

淺談C語言中的語句

我們都知道學習C語言都會遇到兩種常見的語句:選擇語句,迴圈語句。今天就讓我們一起來簡單看看這些語句的特點及功能吧! 選擇語句 if語句,用來實現兩個分支的選擇結構。 switch語句,用來實現多分支的選擇結構。 比如這裡有一個選擇語句: #include&

c語言-----對陣列使用const的方法

    有時需要使用只讀陣列 ,也就是程式從陣列中讀取數值 ,但是程式不向陣列中寫數值 。在這種情況下宣告並初始化陣列時 ,建議使用關鍵字const 。     const   int   days [ MONTHS ] = { 31 , 28 , 31 , 30 , 31

C語言、Java方式下的——規定範圍內不重複隨機數

示例1:C語言版 #include <stdio.h> #include <stdlib.h> #include <time.h> //隨機產生規定個數的不重複數字 int findSame(int *arr, int in, int

golang xml marshal對應的struct表示方法

1.xml的節點名字就是struct成員的名字,如:Project.ItemGroup,成員的型別名不影響 //vcxproj.filters type Project struct { ToolsVersion string `xml:"ToolsVe

C語言陣列實現約瑟夫環問題(方法

約瑟夫環問題:約瑟夫環是一個數學的應用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。 第一種方法:要求將每次

pow函式(數學次方)在c語言的用法,編寫方法例項( 計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值)

關於c語言裡面pow函式,下面借鑑了某位博主的一篇文章: 標頭檔案:#include <math.h> pow() 函式用來求 x 的 y 次冪(次方),x、y及函式值都是double型 ,其原型為:    double pow(double x, double y

1.如何避免野指標2.獲取字串方法。以及malloc,calloc,ralloc的使用注意點3.二維三維陣列4.陣列和函式的區別

一:野指標: char *ptr; 定一個指標,沒有賦值,用NULL。 char *ptr = NULL 即表示指向空,不能再做賦值,不能對0地址操作訪問。 //#define NULL (void *)o 如果出現段錯誤,看看對NULL有沒有賦值。 如何避免野指標而不

C語言】互換個數的值的三方法

        我在第一次C語言學習的過程中,對於C語言的認識不夠深刻,我覺得這種解法已經非常厲害。畢竟能將簡單的兩個數的交換用計算機的邏輯編寫出來,並實現正確執行......int main() { int num1 = 10; int num2 = 20;

C語言字串和字元陣列

如果是字元陣列,也可以用一個字串字面值來初始化: char str[10] = "Hello"; 相當於: char str[10] = { 'H', 'e', 'l', 'l', 'o', '\0' }; str的後四個元素沒有指定,自動初始化為0,即Null字元。

總結:C語言字串輸入的三方式(scanf("%c",array); scanf("%s",str); gets(array);)

1、以scanf("%c",&array);的格式輸入字串; 由於%c是輸入一個字元,若需要輸入字串時我們可以建立陣列或指標配合迴圈(while,do{}while,for)來達到目的。如下例利用do{}while及陣列來輸入字串,並重新輸出,以字元#為結束標誌: #includ

Python中json.loads()無法解析單引號字串問題的解決方法

目錄 1、json檔案的儲存與載入 2、json.loads()無法解析單引號字串問題 3、解決方案 方案一:替換單引號 方案二:在使用json.loads()前使用eval()和json.dumps()進行處理 1、json檔案的儲存與載入 一般來說,我建立字典、儲

C語言字元陣列字串的種種

    #include<stdio.h> #include<string.h> void printByInt(char c[], int count){   

C語言中交換陣列的值

  昨天我們做了交換兩個變數的值,今天我們來看看如何交換兩個陣列的值(陣列內數的個數相同)。   我們可以這樣考慮,陣列不過是數的集合,既然我們會交換兩個數的值,那麼陣列只不過是多次交換兩個數的值,而且陣列內素下標又是依次增大的,所以這裡可以使用一個for迴圈。

C語言:比較字串是否相等

1) 使用strcmp進行比較 下面通過一個例子進行演示: #include <stdio.h> #include <string.h> int main(void) { char* str1 = "abc"; char* str2 = "a

C語言字串字串陣列的輸入賦值

**1、字串指標一定要開闢空間後在做輸入** char * str;   str=(char*)malloc(100*sizeof(char));   scanf("%s",&str); **2、字串陣列要做初始化的開闢空間後再來儲存字串**   cha