#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std; //count endl
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//4.0 char -function
int main(){
char ar[10] ;
char br[10] = {'a','b','c','d'};
char cr[10] = {'f','g','h','i'};
gets(ar);//最多能输入9个,因为最后的位置要留给\0;
puts(ar);
int length = strlen(br);//4 有效长度。
strcat(br,cr);//将cr连接到br中,所以要注意br的长度一定要保证连接cr后还要给\0留一个位置。
//strcpy(ar,br);//把br复制给ar
int result = strcmp(ar,br);// 1 0 -1
printf("result = %d\n",result);
}
//字符数组 :存放字符的有序空间。
/*
//2.1 访问字符数组的地址,可以得到其内部的内容
int main(){
int ar[10] = {0};
cout<<ar<<endl;
// printf("%x\n",ar);//address: 6dfee8
// printf("%s\n",ar);//empty
char br[10] = {'a','b'};
cout<<br<<endl; //ab 访问地址得到了字符数组中的内容。
// printf("%x\n",br); //6dff06
// printf("%s\n",br);//ab
char *p = "abcdef";
cout<<p<<endl;//abcdef
int a = 100;
int *p1 = &a;
cout<<p1<<endl;//0x6cfef8 得到的不是整型a中的内容100,而是a的地址。
//所以要通过访问地址得到里面的内容,只有访问字符数组时,才能使其输出数组中的内容,其它类型不行。
printf("size = %d\n",sizeof(br));//10=数组长度
printf("length = %d\n",strlen(br));//2=有效长度
// char *p = "abcdef";
// printf("");
return 0;
}
/*
//2.0 字符串会以\0作为结束符,方便计算字符串有效长度
void fuzhi_c(char ar[],int n){//形参类型一定要写
for(int i = 0; i < 9 ;i++){
ar[i] = 'a'+i;
}
}
void print(char ar[],int n){//形参类型一定要写
for(int i = 0; i < 10;i++){
printf("%c ",ar[i]);//逐一访问字符数组中的字符
}
}
int main(){
char ch[10];
fuzhi_c(ch,sizeof(ch)/sizeof(char));
print(ch,sizeof(ch)/sizeof(char));
printf("%s ", ch);//直接访问字符数组地址得到里面整个数组的内容;正常访问整个数组,是访问得到一个地址 无法访问里面的内容。但字符数组可以。
// abcdefghij) 显示的还有其它东西,原因是\0 没有在10个位置当中,要把第10个位置留给\0.即将10改为9,在循环时
printf("\n");
}
/*
//1.0
//二维数组用数组名作为形参时,必须在列的位置写上要要传输数组的列数,
//否则会报错,这样就很 受限制,所以用指针调用会比较方便。
void print(int ar[][4], int m, int n){
for (int i = 0; i < m; i++){
for (int j = 0; j< n; j++){
printf("%d ",ar[i][j]);
}
printf("\n");
}
printf("\n");
}
void print(int ar[][3], int m, int n){
for (int i = 0; i < m; i++){
for (int j = 0; j< n; j++){
printf("%d ",ar[i][j]);
}
printf("\n");
}
printf("\n");
}
int main(int argc, char *argv[]) {
int ar[3][4];
int br[2][3] = {1,2,3,4,5,6};//完全赋值
int cr[2][3] = {1,2,4,3};//
int dr [2][3] = {{1},{4}};
printf("size of ar is %d!\n",sizeof(ar));//4*12=48
for (int i = 0;i < 3; i++){
for (int j = 0; j < 4;j++){
ar[i][j]=i+j;
}
}
print(ar,3,4);
print(br,2,3);
print(cr,2,3);
print(dr,2,3);
return 0;
}*/
#include <stdio.h>
#include <string.h>
using namespace std; //count endl
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
//4.0 char -function
int main(){
char ar[10] ;
char br[10] = {'a','b','c','d'};
char cr[10] = {'f','g','h','i'};
gets(ar);//最多能输入9个,因为最后的位置要留给\0;
puts(ar);
int length = strlen(br);//4 有效长度。
strcat(br,cr);//将cr连接到br中,所以要注意br的长度一定要保证连接cr后还要给\0留一个位置。
//strcpy(ar,br);//把br复制给ar
int result = strcmp(ar,br);// 1 0 -1
printf("result = %d\n",result);
}
//字符数组 :存放字符的有序空间。
/*
//2.1 访问字符数组的地址,可以得到其内部的内容
int main(){
int ar[10] = {0};
cout<<ar<<endl;
// printf("%x\n",ar);//address: 6dfee8
// printf("%s\n",ar);//empty
char br[10] = {'a','b'};
cout<<br<<endl; //ab 访问地址得到了字符数组中的内容。
// printf("%x\n",br); //6dff06
// printf("%s\n",br);//ab
char *p = "abcdef";
cout<<p<<endl;//abcdef
int a = 100;
int *p1 = &a;
cout<<p1<<endl;//0x6cfef8 得到的不是整型a中的内容100,而是a的地址。
//所以要通过访问地址得到里面的内容,只有访问字符数组时,才能使其输出数组中的内容,其它类型不行。
printf("size = %d\n",sizeof(br));//10=数组长度
printf("length = %d\n",strlen(br));//2=有效长度
// char *p = "abcdef";
// printf("");
return 0;
}
/*
//2.0 字符串会以\0作为结束符,方便计算字符串有效长度
void fuzhi_c(char ar[],int n){//形参类型一定要写
for(int i = 0; i < 9 ;i++){
ar[i] = 'a'+i;
}
}
void print(char ar[],int n){//形参类型一定要写
for(int i = 0; i < 10;i++){
printf("%c ",ar[i]);//逐一访问字符数组中的字符
}
}
int main(){
char ch[10];
fuzhi_c(ch,sizeof(ch)/sizeof(char));
print(ch,sizeof(ch)/sizeof(char));
printf("%s ", ch);//直接访问字符数组地址得到里面整个数组的内容;正常访问整个数组,是访问得到一个地址 无法访问里面的内容。但字符数组可以。
// abcdefghij) 显示的还有其它东西,原因是\0 没有在10个位置当中,要把第10个位置留给\0.即将10改为9,在循环时
printf("\n");
}
/*
//1.0
//二维数组用数组名作为形参时,必须在列的位置写上要要传输数组的列数,
//否则会报错,这样就很 受限制,所以用指针调用会比较方便。
void print(int ar[][4], int m, int n){
for (int i = 0; i < m; i++){
for (int j = 0; j< n; j++){
printf("%d ",ar[i][j]);
}
printf("\n");
}
printf("\n");
}
void print(int ar[][3], int m, int n){
for (int i = 0; i < m; i++){
for (int j = 0; j< n; j++){
printf("%d ",ar[i][j]);
}
printf("\n");
}
printf("\n");
}
int main(int argc, char *argv[]) {
int ar[3][4];
int br[2][3] = {1,2,3,4,5,6};//完全赋值
int cr[2][3] = {1,2,4,3};//
int dr [2][3] = {{1},{4}};
printf("size of ar is %d!\n",sizeof(ar));//4*12=48
for (int i = 0;i < 3; i++){
for (int j = 0; j < 4;j++){
ar[i][j]=i+j;
}
}
print(ar,3,4);
print(br,2,3);
print(cr,2,3);
print(dr,2,3);
return 0;
}*/