字符数组和字符串

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

int main01()

{

//字符

  char ch='a';

//字符串:字符串结束标志为“”,数字0等同于“”;但是不等同于“ '0' ”;字符串就是一个字符数组的特例

  //字符串样式:

  //char*arr="hello";

  //char arr[] = "hello";

  //char arr[]={"hello"};

  //char arr[][6]={"hello","world"};//字符串数组

  //char arr[] = { 'h','e','l','l','o',''};//“ '' ”结束

  //char arr[6] = { 'h','e','l','l','o'};//当数组下标为5时,为字符;当数组下标为6时,为字符串

  //char arr[100] = { 110,111,112,101,123,98 };

  char arr[] = { 110,111,112,101,123,98,0};//0表结束

  printf("%s", arr);//%s:打印字符串

  

//定义字符数组

  char arr1[5] = { 'h','e','l','l','o'};

  printf("5个元素的字符型数组大小为:%d ", sizeof(arr1));//1*5=5

  for (int i = 0; i <sizeof(arr1)/sizeof(arr1[0]); i++)

  {

    printf("%c", arr1[i]);//%c:打印字符

  }

  return 0;

}

int main02()

{

//定义字符数组存储字符串

//定义了一个字符串数组,能存储有效字符10个

  char ch[11];

/*ch本身就是一个地址,不用&。%10s在这里起限定的作用,表示有10个有效字符,需预留一个位置存;scanf接收空格或接收换行表示结束。eg:如输入hello worldaoao,不会报错,而是打印hello*

  scanf("%10s",ch);

  printf("%s",ch);

  return 0;

}

int main03()

{

//字符串拼接

  char ch1[]="hello"//占6个字节空间(包括“”)

  char ch2[]="world"

  char ch3[20];

  

  int i=0;

  int j=0;

  while(ch1[i]!='')

  {

    ch3[i]=ch1[i];

    i++;//最后一层循环i=5

  }

  while(ch2[j]!='')

  {

    ch3[i+j]=ch2[j];

    j++;//最后一层循环j=5

  }

  ch3[i+j]=0;//i+j=10;//ch3[i+j]是一个元素,可以赋值。0相当于“ '' ”

  printf("%s",ch3);

  return 0;

//结果

}

原文地址:https://www.cnblogs.com/wanghong19991213/p/13514887.html