C语言--一维数组,字符数组

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
#pragma mark----------数组
   //数组是容器,相同数据类型
    //构造类型

//    int  a[3]={5,2,0};
    //类型
//    int[3];
    //变量名
//    a;
    //初值
//    {5,2,0};

//    int a[4] = {9,8,7,6};
//    float b[6] = {2.5,3.14};
//    char c[3] = "abc";
//    char d[3] = {'a','b','c'};
//    BOOL e[4] = {YES,NO};

    //a[0]+a[1]操作数组下标取值赋值

    //前有类型修饰符,代表数组,没有类型修饰符,代表下标

    //1.生成一个包含20个元素数组,数组的值取值在30到70之间,并求出数组元素的和
//    int sum = 0, a[20]={0};
//    for (int i = 0; i<20; i++) {
//        a[i]=arc4random()%41+30;
//        printf("%d ",a[i]);
//        sum = sum + a[i];
//    }
//    printf("\nsum=%d",sum);
    //2.复制
//    int a[20]={0},b[20]={0};
//    for (int i = 0; i<20; i++) {
//        a[i]=arc4random()%41+30;
//        printf("%d ",a[i]);
//        b[i]=a[i];
//    }
//    printf("\n");
//    for (int j = 0; j<20; j++) {
//        printf("%d ",b[j]);
//    }
    //3.生成两个数组,然后两个数组对应下标元素相加,放到第三个数组中
//    int a[10]={0},b[10]={0},c[10]={0};
//    for (int i = 0; i<10; i++) {
//        a[i]=arc4random()%(40-20+1)+20;
//        b[i]=arc4random()%(40-20+1)+20;
//        c[i]=a[i]+b[i];
//          printf("%d + %d = %d\n",a[i],b[i],c[i]);
//    }
//    printf("\n");
//    for (int j = 0; j<10; j++) {
//            printf("%d ",b[j]);
//    }
//    printf("\n");
//    for (int j = 0; j<10; j++) {
//        printf("%d ",c[j]);
//    }

#pragma mark--------------1
    //注意,
    //1,系统不会检测数组元素的下标是否越界,编程时,必须保证数组下标不能越界
    //2,数组是一个整体,不能直接参加运算,只能对单个元素进行处理,通常会用到数组的地方,就会用到循环(循环就是为了数组而生)

//    scanf("%d",&a);
//    getchar() 打印123def 结果是1
//    printf(""),打印123def 结果是123

    /**
     *  从键盘缓冲区读取数据
     */

//    int a[10]={0};
//    for (int i = 0; i<10; i++) {
//        a[i]=arc4random()%31;
//        printf("%2d ",a[i]);
//    }
//    for (int i = 0; i<10-1; i++) {
//        for (int j = 0; j<10-1-i; j++) {
//            if (a[j]>a[j+1]) {
//                int temp = a[j];
//                a[j]=a[j+1];
//                a[j+1]=temp;
//            }
//        }
//    }
//    printf("\n");
//    for (int i =0; i<10; i++) {
//        printf("%-2d ",a[i]);
//    }

//    int a[10]={0};
//    for (int i = 0; i<10; i++) {
//        a[i]=arc4random()%(40-20+1)+20;
//        printf("%d ",a[i]);
//    }
//    for (int i = 0; i<10-1; i++) {
//        for (int j = 0; j<10-1-i; j++) {
//            if (a[j]>a[j+1]) {//max<a[i],min>a[i]
//                int temp = a[j];
//                a[j]=a[j+1];
//                a[j+1]=temp;
//            }
//        }
//    }
//    printf("\n");
//    for (int i =0; i<10; i++) {
//        printf("%d ",a[i]);
//    }

//    strlen("hello");
#pragma mark--------------2
    //字符串长度  比如hello,字符串长度5
//    printf("%lu",strlen("hello"));
    //字符串所占空间 比如char[10]="hello" 字符串所占空间10;
//    char c[] = "hello";
//    printf("%lu",sizeof(c));
//    for (int i = 0; i<sizeof(c); i++) {
//        printf(" %c ",c[i]);
//    }
//    printf("\n%s ",c);
    //等同于下面
    //%s,从首地址开始打印,直到打到/0结束
//    char d = 0;
//    int i = 0;
//    while ((d = c[i]) != '\0') {
//        printf("%c",d);
//        i++;
//    }

    //strlen,测量字符串长度
    //strcpy
    //strcmp,比较
    //strcat//拼接
//    char name[20]="zuoyoudong";
//    printf("%s length = %lu",name,strlen(name));
//    int i = 0;
//    while (name[i] !='\0') {
//        printf("%c",name[i]);
//        i++;
//    }
//    printf("%d",i);

//    char z[]="zuo";
//    char y[5]="yi";
//    strcpy(y, z);
//    printf("%s",strcpy(y, z));
    //1,"hello",2,"abcdefghi",3,拷贝,hello\0ghi

#pragma mark--------------3
//    char str1[50] = "hangsan";
//    char str2[10] = "lisi";
//    strcpy(str2, str1);//前面目的串,后面来源串,const只可读,不可赋值
//    printf("%s",str2);

    //字符串拼接strcat 注意:是否有足够的空间,放长度
//    strcat(str1, str2);//带const修饰是不变的
//    strcat(str1, str2);
//    printf("%s",str1);

    //字符串比较strcmp(按ASC码值求大小)
//    int result = strcmp(str1, str2);
//    printf("%d",strcmp(str1, str2));
//    printf("%d",result);
//    if (result>1) {
//        printf("\n%s 大于 %s",str1,str2);
//    }else if (result==0){
//        printf("%s 等于 %s",str1,str2);
//    }else{
//        printf("\n%s 小于 %s",str1,str2);
//    }

    //strlen
    //strcmp
    //strcat
    //strcpy

    //查找字符串中的空格数
//    char str[50] = "I love iOS,i want an iPhone5s";
//    int i = 0,count = 0;
//    while (str[i]!='\0') {
//        char c = str[i];
//        if (c ==' ') {
//            count++;
//        }
//        i++;
//    }
//    printf("%d",count);

#pragma mark--------------4
    //把字符倒转过来
    //解题思路!
    //凡是交换要定义第三方temp
    char str1[]="hello";
    char str2[5]=" ";
    long length = strlen(str1);
//    printf("%lu",length);
    printf("%lu",sizeof(str1));
//    long length =strlen(str1);
//    printf("%lu",length);
//    int  i = 0;
//    while (str1[i] !='\0') {
//        char temp = str1[i];
//        str1[i]=str2[i];
//        str2[i]=temp;
//
//    }
//    printf("%s",str2);
//    for (int i = 0; i<sizeof(str1); <#increment#>) {
//        <#statements#>
//    }
//#pragma mark--------------5绝对值
//#pragma mark--------------6for循环
//#pragma mark--------------7作业

C语言--一维数组,字符数组

时间: 2024-10-25 02:55:46

C语言--一维数组,字符数组的相关文章

关于“C语言中的字符数组和字符串”一些需要注意的基础点

在C语言中,没有类似Java的String类对字符串的处理,字符串的包装可以采用字符数组. 先看字符数组: #include<stdio.h> void main() { char array[] = {'a','b','c'}; int str = sizeof(array)/sizeof(char); printf("%d",str); } 此时的输出结果为:3,即字符数组的长度为3. 下面我们用字符串初始化字符数组,代码如下. #include<stdio.h&

C语言学习笔记:19_数组-字符数组与字符串(常用字符串函数)

/* * 19_数组-字符数组与字符串.c * * Created on: 2015年7月7日 * Author: zhong */ #include <stdio.h> #include <stdlib.h> #include <string.h> /** *一:字符数组:就是存放字符的char[]数组 * 由于c语言中没有像java,C#中的String(字符串),只有存放字符 的字符型数组当字符串使用(java中的String类也是对字符数组进行封闭的). * *

C语言第四讲:一维数组,字符数组

数组: 定义: 数据类型 数组名[数组元素个数] = {值1,值2,....} 本质:快速定义多个 相同数据类型的变量 数组的缺点:定义出来的是 相同数据类型 的变量. 如: int c[5] = {0};//在给定数组元素个数的时候,可以按照该模式,全部赋初值为零 int a[] = {4, 5, 6};//在没有给定数组元素个数的时候,可以按照该模式,此时,一定要写清楚所有的初值. 数组元素的访问: 通过数组名加下标来访问的 如:a[1],切记下标从零开始. 注意:1,数组最后一个元素的下标

C语言中的字符数组

周末赶数据结构的作业,整理的一些关于C语言中字符数组的困惑与解答. 1.赋值 C语言中,给字符数组char s[]赋值使用strcpy (在string.h头文件中) #include <stdio.h> #include <string.h> int main() { char test[3][4]; strcpy(test[0], "abc"); strcpy(test[1], "adf"); strcpy(test[2], "

C语言中二维字符数组的定义和初始化

本篇日志关于二维字符数组的定义和初始化.我相信这篇文章属于菜鸟级的,高手请直接无视. 一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它.比如说: 1 char testcase[30][MAX_LENGTH] = {"jo","vicent","tom","honey","gigi","lily","susan","pet

C语言 &#183; 递归倒置字符数组

算法提高 递归倒置字符数组 时间限制:1.0s   内存限制:512.0MB 问题描述 完成一个递归程序,倒置字符数组.并打印实现过程 递归逻辑为: 当字符长度等于1时,直接返回 否则,调换首尾两个字符,在递归地倒置字符数组的剩下部分 输入格式 字符数组长度及该数组 输出格式 在求解过程中,打印字符数组的变化情况. 最后空一行,在程序结尾处打印倒置后该数组的各个元素. 样例输入 Sample 1 5 abcde Sample 2 1 a 样例输出 Sample 1 ebcda edcba edc

复习一下整型数组,字符数组,整型指针数组,字符指针数组,整型数组指针,字符数组指针

20:52:01 2019-12-31 整型数组 int a[10];字符数组 char b[10]; _______________________整型指针数组 int *p[10]; |__|__|__|__|__|__|__|__|__| 每个格子里存的是一个指针,每个指针都是int类型的,会指向一个int的值. 1 for(int i=0; i<10; i++) 2 p[i] = &a[i]; //把a中的每个元素的地址都放在了指针数组p里. 3 4 for(int j=0; j&l

C语言中一个字符数组里面的所有元素变成一个字符串

#include <string.h> int main() // 这里为了方便直接用main函数 {     char array[] = { 'h', 'e', 'l', 'l', 'o' };     /* 需要注意的是,这里没有终结符,故需要知道数组的 */     /* 大小(数组的大小是编译时常量)*/     char *dest_str; // 目标字符串          dest_str = (char *)malloc(sizeof(char) * (sizeof(arr

关于c语言中的字符数组的输入问题

#include<stdio.h>int main(){  int i;  char a[6];  for(i=0;i<6;i++)  {   scanf("%c",&a[i]);   getchar();//zhe ge hen zhong yao yao jia shang;  }  for(i=0;i<6;i++)   printf("%c ",a[i]);  printf("\n");}