c-字符串

/*****字符串基本概念******/
#include <stdio.h>
#include <string.h>

int main()
{
    char first[4] = {'l','m','\0'};//定義字符串 注意別忘了給字符串分配大小
    char second[9] = "你好lm";//定義字符串的另外一種形式
    
    char third[] = {'x','f','\0'};//這個不是字符串,可是是一個簡單的字符數組
    char four[] = "asc\0df";
    
    char arr[2][10] = { //二維數組的定義和輸出
        {'a','b','c','\0'},
        {'d','e','l','\0'}
    };
    
//    char arr[2][10] = {
//               "abcde",
//                "dfdsfdsf"
//            };
    
    int size1 = sizeof(second);//計算字節數,一個漢字有3個字節數。'\0'也計算進去
    int size2 = strlen(second);//計算除了‘\0’的字節數。
    
    int size3 = sizeof(four);//計算所有的字節數
    int size4 = strlen(four);//以'\0'來做爲結束標誌,且不把’\0‘計算進去
    
    printf("%s \n",first);
    printf("%s\n",second);
    
    //數組的輸出是以當前數組地址爲起點,直到‘\0‘才結束。因此若是字符數組若是沒有分配'\0'的話
    //它會繼續輸出其餘的數組。
    printf("%s\n",third);
    
    printf("%c\n",four[2]);
    
    printf("%d\n",size1);
    printf("%d\n",size2);
    
    printf("%d\n",size3);
    printf("%d\n",size4);
    
    printf("ssssss\n");
    for(int i=0; i<2; i++){
        printf("***\n");
        for(int j=0;j<strlen(arr[i]);j++){
            printf("%c\n",arr[i][j]);
        }
    }
    
    return 0;
    
}

數組

 

/****練習******/函數

#include <stdio.h>
#include <string.h>


int char_contains(char str[],char c)//須要定義在main函數前面
{
    int len = strlen(str);
    for (int i=0; i<len; i++)
    {
        if (str[i] == c)
        {
            printf("1\n");
        }
        else {
            printf("0\n");
        }
    }
    return 0;
}

void char_contains2(char str[],char c)
{
    int i = 0;
    
    while( str[i] ) {//若是字符不爲'\0'爲真。
        
        if(str[i] == c) {
          printf("1\n");
        } else {
          printf("0\n");
        }
       
        i++;
    }
}

int main()
{
    char str[] = "acdcb";
    char_contains(str,'c');
    printf("******\n");
    char_contains2(str,'c');
    return 0;
}



字符串

相關文章
相關標籤/搜索