首页 > 其他分享 >C语言小白 记录自己对一些概念的理解 若有错误 多包涵 若能指正 万分感激

C语言小白 记录自己对一些概念的理解 若有错误 多包涵 若能指正 万分感激

时间:2024-10-20 11:58:58浏览次数:5  
标签:字符 万分感激 一个 C语言 char 指正 数组 字符串 指针

当你想将输入和判断输入一起做时
可以用while((数组名[i]=getchar())!='\n') 记得拿括号括起来辅助 在写!=

CG平台使用输入重定向输入测试数据,需要使用 ( ch = getchar() ) != EOF 判断字符串输入结束,如果使用 ( ch = getchar() ) != '\n' 上传到CG平台后可能会超时。

写oj的时候 如果输出要求有空格的话 注意看第一行最后一个要不要求空格
不确定就两个都写都考虑
注意换行的要求 不要少了也不要多了
最好不要写printf关于输入提示 如果题目没有明确要求

字符串 新手常犯错误 以为char就是字符串类型 定义后就可以直接使用
其实 char
string 是定义了一个指针变量 要先初始化 即string=“某某某字符串”
或者你想让字符串的内容由用户输入的话 那就定义一个字符串数组
比如 char word【8】然后在scanf(“%s7”,word);

二维数组 第二个即 列数【】里面一定要写值 不能不写 第一个行数可以不写,编译器会自动给出

字符串数组 数组里的每一个元素存储的是指针 每个指针指向 一个字符串
char *month[]={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
比如这样 一个字符串数组 名为month 每个元素指向一个字符串 字符串记得是双引号

字符数组可以通过以下几种方式定义:
固定大小的字符数组:
char charArray[10] = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '\0'};
这里定义了一个大小为13的字符数组(包括结尾的空字符),初始化为字符串"Hello, world"。

使用字符串初始化char charArray[] = "Hello, world"
这里定义了一个字符数组,并使用字符串"Hello, world"进行初始化。数组的大小自动调整为字符串的长度加上一个空字符。

字符串数组:字符串实际上是一个字符数组,以空字符(\0)结尾。例如,字符串 "Hello" 实际上是一个字符数组 {'H', 'e', 'l', 'l', 'o', '\0'}。
指针数组:一个数组,其元素都是指针时,我们称之为指针数组。每个指针可以指向一个不同的数据类型,比如一个整数、一个结构体或者一个字符数组。
字符串指针数组:这是一个特殊的指针数组,其中每个指针指向一个字符数组,也就是指向一个字符串。在这种情况下,每个指针指向的字符数组包含了一个字符串的字符序列,并且以空字符(\0)结尾。

标签:字符,万分感激,一个,C语言,char,指正,数组,字符串,指针
From: https://www.cnblogs.com/chenchenglin/p/18487107

相关文章

  • C语言中的段错误(Segmentation Fault):底层原理及解决方法
    引言在C语言编程中,“段错误”(通常由操作系统信号SIGSEGV触发)是一种常见的异常情况,它表明程序试图访问不受保护的内存区域。本文将深入探讨段错误的原因、底层原理、常见情况以及如何调试和解决这类错误。段错误的定义段错误是一种运行时错误,通常由以下几种情况触发:访......
  • C语言_通讯录
    引言:当我们C语言语法大部分都学习完的情况下,可以尝试一些项目来提升自己,比如下面的这个通讯录。玩法介绍:我们需要对通讯录里面的个人信息进行增删查改以及排序等操作技能要求:学习完大部分的C语言语法知识。接下来我将创建三个文件:具备函数声明、宏定义、所需库函数的头......
  • 【趣学C语言和数据结构100例】
    【趣学C语言和数据结构100例】问题描述在带头结点的单链表中,删除所有值为x的结点,并释放其空间,假设值为x的结点不唯一,试编写算法以实现上述操作。试编写在带头结点的单链表中寻找一个最小值结点的高效算法(假设该结点唯一)设在一个带表头结点的单链表中,所有结点......
  • 数据结构C语言|队列相关
    队列普通队列与循环队列:结构体初始化队列判断队空入队出队检查队满循环队列链式队列:链式队列链式队列结构初始化判断是否为空入队出队遍历全部代码展示结构体typedefintElemType;#defineMaxSize10typedefstruct{ ElemTypedata[MaxSize]; //用静态......
  • C语言解决约瑟夫环(PTA链表)
    题意:就是N个人围成一个圈(想到循环),开始报数,报到一个指定的数p,则这个人出局,后延,比如本题的样例,第三个人报了3,则第四个人继续从1开始报数,一直循环下去,第七个人报完之后,再到第一个人,直到只剩下一个人,那么下一个出局的只剩下这个人。解题思路:我们看到,最后一个人报数之后,又回到了......
  • C语言 【操作符(上)】
        最开始提到C语言操作符,我还是有一些不屑的,这玩意有啥学的呀?今天静下心来阅读学习了一下操作符部分的知识,这部分还真得认真学习学习!下面我将操作符中一些比较关键的点进行罗列和详细说明。一来帮助我加深理解,二来希望能帮助到有缘点击进来的读者。1、算术操作符:+ ......
  • C语言经典游戏代码大全(珍藏版)
    前言发现很多朋友都想要一些小项目来练手,却找不到从哪里寻找,给大家整理了游戏项目开发源代码汇总。一、最经典游戏之俄罗斯方块#include<iostream>#include<math.h>#include<Windows.h>#include<conio.h>#include<ctime>usingnamespacestd; enumDIR{   UP......
  • Linux C语言TCP协议实战
    文章目录1.TCP简介2.搭建框图3.相关函数介绍3.1socket函数3.2bind函数3.3listen函数3.4accept函数3.5connect函数3.6send函数3.7recv函数3.8其他函数4.实战4.1一对一模型4.1.1server.c4.1.2client.c4.1.3终端结果4.2多进程模型4.2.1server.c4.2.2cl......
  • 汉诺塔问题和青蛙跳台阶问题(c语言)
     这俩道题都是利用到了函数递归的思想,其中汉诺塔问题较难理解,青蛙跳台阶则较简单汉诺塔问题题述:设有三根柱子分别时A,B,C,在A柱子上放着n个盘子,每个盘子大小不一样,从下往上盘子大小依次减小,要求将A柱子上的盘子移动到C柱,且不改变盘子顺序(由大往小排序)。规则:1.一次只能......
  • 【C语言】动态内存管理(上)
    本篇博客将讲解以下知识点:(1)为什么要有动态内存分配(2)malloc和free1、为什么要有动态内存分配我们已经掌握的内存开辟方式有:intval=40;//向内存中申请4个字节空间存储valchararr[10];//向内存申请10个字节空间 上述的开辟空间的方式有两个特点:(1)空间的开辟......