1. 程式人生 > >記錄一下C語言中字串的相關問題!

記錄一下C語言中字串的相關問題!

最近在努力提高自己程式設計水平,想著先把C語言溫習一下吧! 結果發現好久不程式設計,大一學的C語言全還給老師了!只能邊搜尋,邊寫了,記錄我的錯誤!都是老師講過的,當時太年輕沒實踐!!
所以學程式碼還得多寫啊!

主要集中處理字串這一塊的內容!

問題1:讀取問題

char plaintext[K];
printf("Please input plaintext!\n");
gets(plaintext);

記得gets()前邊加getchar()不然會無法讀取。scanf() ,用%s是無法讀取帶空格的字串的,需要用%[^\n]

問題2:區分以下幾個概念

char *p[K];             //char型指標陣列
char p;                 //字串

char s[];               //字串陣列
char *w = s;           //字串陣列指標

反正我有印象老師講了好多次,反正當時太浪了沒聽,只能補習了!

1)

    #include<stdio.h>
    int main(int argc, char const *argv[])
    {
    	char str[]="Wo shi la ji!";
        char *p=str;
        printf("%s\n", str);
        printf("%s\n", p);
        printf("%c%c%c\n", *p, *p+2, *(p+1));
    	return 0;
    }

看輸出就知道

Wo shi la ji!
Wo shi la ji!
WXo

2)

#include<stdio.h>

int main(int argc, char const *argv[])
{
	int i;
    char *p[5]={"abc","def","ghi","jkl","mno"};
    for(i = 0;i < 5; i++)
    	printf("%s\n", p[i]);
	printf("%s\n", *p);
	printf("%s %s %s %s\n", *p+1, *p+2, *p+3, *p+4);
	printf("%s %s %s\n", *(p+1), *(p+2), *(p+3));

    return 0;
}

輸出

abc
def
ghi
jkl
mno
abc
bc c  def                  //c和def之間有倆空格
def ghi jkl

3)

字串傳參時候,不用取地址,

先就這些吧!

寫給自己, 人不能太浪 , 基礎不穩,地動山搖, 多幹實事!