c语言

从零开始学习C语言22——字符串函数

假如想象 提交于 2020-03-17 08:16:25
字符数组 C 语言是没有字符串类型的。那它是如何存放和表示字符串的呢?两种方式——字符串常量以及字符类型的数组。 字符串常量:“FishC”,“小甲鱼”,“鱼C工作室” 字符数组: 可以先定义指定长度的字符数组,然后再给每个元素单独赋值: int main { char str[10]; str[0] = 'F'; str[1] = 'i'; str[2] = 's'; str[3] = 'h'; str[4] = 'C'; str[5] = '\0'; …… } 还可以直接在定义的时候对字符数组进行初始化,这样会方便很多: int main { // 初始化字符数组的每个元素 char str1[10] = {'F', 'i', 's', 'h', 'C', '\0'}; // 可以不写元素的个数,因为编译器会自动计算 char str3[] = {'F', 'i', 's', 'h', 'C', '\0'}; // 使用字符串常量初始化字符数组 char str4[] = {"FishC"}; // 使用字符串常量初始化,可以省略大括号 char str5[] = "FishC"; } 字符串处理函数 在实际开发中,你经常会听到大牛说“避免重新造轮子”。如果能用得上官方提供的现成的函数,尽量不要自己去写,这样除了能够大幅度提供工作效率外,也会使你的程序更加稳定和快速。

C语言·鸡兔同笼题

半腔热情 提交于 2020-03-17 08:03:04
题目:今有鸡兔同笼,上有35头,下有94足,问鸡兔各有多少只。 思路:设四只脚的兔子有x头,2只脚的鸡有y头。 方程式(1):4x+2y=94 ------------需要化成只有一个未知数的式子,然后求出x。 方程式(2):x+y=35 ------------方程式(1)得出x值后,可直接得出 y。 求x的解方程组过程: (1)式 4x+2y=94 (2)式 2x+2y=2*35 (4x-2x)+(2y-2y)=94-(2*35) 2x+0=94-70=24 2x=24 x=12 由此可知 根据 (4x-2x)+(2y-2y)=94-(2*35) 能得出 x=(94-2*35)/2 # include <stdio.h> int main ( void ) { int foot , head , x , y ; /*x为兔子数目,y为鸡数目*/ printf ( "请输入鸡兔共有多少只脚\n" ) ; scanf ( "%d" , & foot ) ; printf ( "请输入鸡兔共有多少个头\n" ) ; scanf ( "%d" , & head ) ; x = ( foot - 2 * head ) / 2 ; y = head - x ; printf ( "兔子有%d头,鸡有%d个。\n" , x , y ) ; return 0 ; } 来源: CSDN 作者:

初识C语言1

不打扰是莪最后的温柔 提交于 2020-03-17 07:27:31
初识C语言 什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 # include <stdio.h> //简单C语言程序 int main ( ) { printf ( "hello world\n" ) ; return 0 ; } 数据类型 char 字符数据类型 short 短整型 int 整形 long 长整型 long long 更长的整形 float 单精度浮点数 double 双精度浮点数 每种类型的大小是多少? # include <stdio.h> int main ( ) { printf ( "%d\n" , sizeof ( char ) ) ; //1 printf ( "%d\n" , sizeof ( short ) ) ; //2 printf ( "%d\n" , sizeof ( int ) ) ; //4 printf ( "%d\n" , sizeof ( long ) ) ; //4 printf ( "%d\n" , sizeof ( long long ) ) ; //8 printf ( "%d\n" , sizeof ( float ) ) ; //4 printf ( "%d\n" ,

关于C语言和JAVA的几点区别

試著忘記壹切 提交于 2020-03-17 02:42:13
从概念上看 ,C语言是一门面向过程、抽象化的通用程序设计语言;Java是一门面向对象编程语言,而Java语言是从C语言衍生而来,它吸收了C++语言的各种优点,并且摒弃了C++里难以理解的多继承、指针等概念。从概念可以看出C语言相当于Java的基础语言。 从应用领域上看 ,C语言和Java的应用领域几乎没有重合。因为随着这几年Java、web、PHP等语言的出现,它们凭借比C更简洁的、更安全的性能快速崛起,抢占了大量的市场。目前因为Java有完善的框架,在多线程、高并发方面有着较好的稳定性,所以Java主要应用于企业级应用开发、大型系统开发等领域。而C语言由于编程的复杂性,退守到了系统级别语言,而且因为想要系统级软件可以发挥出机器的功能,它的底层核心就需要用C/C++来编写,所以C语言主要应用于软件工业。 从语言本身来看的话 ,有这几点区别: 1、语法不同; 2、单文件的编译时间java比C语言快; 3、C语言可以直接操作内存,java不能直接操作; 4、C语言可以封装动态库,java不行; 5、C语言的代码不容易跨平台,java的代码容易跨平台; 6、C语言有指针,java没有指针; 7、C语言可以直接操作串口,java需要第三方jar包支持; 8、C语言的线程更加灵活,java的线程都已经封装好了; 9、C语言做单独功能,可以增加效率,java适用做web应用开发; 10

c语言变长数组

北慕城南 提交于 2020-03-17 02:33:08
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> #include <time.h> #include <unistd.h> typedef struct score_s{ char name[20]; int scores[0]; }score; int main() { score *scoreInfo = malloc(sizeof(score) + sizeof(int) * 3); strcpy(scoreInfo->name, "guanxianseng"); scoreInfo->scores[0] = 100; scoreInfo->scores[1] = 110; scoreInfo->scores[2] = 120; printf("name:%s\n", scoreInfo->name); for (int i = 0; i < 3; i++) { printf("score:%d\t", scoreInfo->scores[i]); } printf("\n"); return 0; } 来源: https://www.cnblogs.com/luckygxf/p/12508226.html

c语言中argc与argv

孤街醉人 提交于 2020-03-17 01:50:09
void main ( int argc , char * argv [ ] ) arg:arguments argc:argument counter 表示传入main函数的参数个数 argv:argument vector 表示传入main函数的参数序列或指针,并且第一参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个 举例 # include <stdio.h> int main ( int argc , char * argv [ ] ) { int i ; for ( i = 0 ; i < argc ; i ++ ) printf ( "Argument %d is %s./n" , i , argv [ i ] ) ; return 0 ; } 假如上述代码编译为hello.exe,那么运行 hello . exe a b c d e 将得到 Argument 0 is hello . exe . Argument 1 is a . Argument 2 is b . Argument 3 is c . Argument 4 is d . Argument 5 is e . 来源: CSDN 作者: Jason/angel 链接: https://blog.csdn.net/qq

通俗地理解什么是编程语言

限于喜欢 提交于 2020-03-17 00:29:43
学习编程语言之前,首先要搞清楚「编程语言」这个概念。 很小的时候,父母就教我们开口说话,也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习,我们竟然在不知不觉中学会了说话,同时也能听懂其他小朋友说话的意思了,我们开始向父母要零花钱买零食和玩具、被欺负了向父母倾诉…… 我们说的是汉语,是“中国语言”,只要把我们的需求告诉父母,父母就会满足,我们用“中国语言”来控制父母,让父母做我们喜欢的事情。 “中国语言”有固定的格式,每个汉字代表的意思不同,我们必须正确的表达,父母才能理解我们的意思。例如让父母给我们10元零花钱,我们会说“妈妈给我10块钱吧,我要买小汽车”。如果我们说“10元给我汽车小零花钱妈妈”,或者“妈妈给我10亿人民币,我要买F-22”,妈妈就会觉得奇怪,听不懂我们的意思,或者理解错误,责备我们。 我们通过有固定格式和固定词汇的“语言”来控制他人,让他人为我们做事情。语言有很多种,包括汉语、英语、法语、韩语等,虽然他们的词汇和格式都不一样,但是可以达到同样的目的,我们可以选择任意一种语言去控制他人。 同样,我们也可以通过”语言“来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming Language)。 编程语言也有固定的格式和词汇,我们必须经过学习才会使用,才能控制计算机。 编程语言有很多种,常用的有 C语言 、 C++ 、 Java

IOS笔记-C语言中的字符串数组 指针

南楼画角 提交于 2020-03-16 21:46:09
1、字符串 用“”引起来的内容,就是字符串。 在C语言中有没有专门的字符串的变量? 没有 所以我们使用字符数组来存储字符串。(把字符串的每一个字符存储到字符数组的每一个元素中,并且会多存放一个‘\0’) '\0' 字符串的结束标记,ascII码表中值是 0 对应的字符。NUT,NULL 2、字符数组 1)定义 char 数祖名[长度]; char str[200]; 表示定义一个长度为200的字符数组,如果用来存储字符串,则字符串的最大长度是199,留出一个给'\0' char str[3]={'a','b','c'}; //不能以%s进行输出 2)初始化 (1)完全初始化 char str[3]={'a','b','c'}; (2)部分初始化 char str[3]={'a','b'}; (3)用字符串进行初始化 char str[10]="itcast"; //占用了7个字节因为'\0'占用了一个 char str[10]={"itcast"}; 3)字符数组的引用 如果把字符数组的内容逐个取出,str[0]、str[1]....str[n-1]; %s 字符串的格式控制符把字符数组整体进行输出 %s 给一个字符数组的首地址,系统会自动从首地址开始连续读取直到遇到'\0'结束 4)存储细节 字符数组存储的细节: 连续的一片存储区域(地址是连续的),每个字符占用1个字节

C语言括号匹配问题

不羁的心 提交于 2020-03-16 18:27:56
C语言括号匹配问题 用C语言实现括号匹配算法。要求输入任意的包含括号的字符序列(不一定是表达式),都能判断是否匹配。在测试时,要求序列中既有括号,也要有普通字符,括号必须包含( )、[ ]、{ }这三种。 数组栈 代码 #include < stdio . h > #include < stdlib . h > #include < string . h > #define MAX_SIZE 50 typedef char datatype ; datatype stack [ MAX_SIZE ] ; int top = 0 , base = 0 ; void initial ( ) //初始化 { top = base = 0 ; } void push ( datatype x ) //进栈 { stack [ top ] = x ; } void pop ( ) //出栈 { top -- ; } char top_data ( ) //栈顶元素 { return stack [ top ] ; } int main ( ) { initial ( ) ; datatype str [ MAX_SIZE ] = { '\0' } ; gets ( str ) ; char ch [ MAX_SIZE ] = { '\0' } ; strcpy ( ch , str ) ;

C语言结构体

社会主义新天地 提交于 2020-03-16 14:43:25
数据经常以组的形式存在,例如,学生的信息包括姓名、学号、性别。年龄等;当我们查看学生的信息时,如果这些信息在一起访问起来会很高效简单。但是这些信息的值的类型都不同就不能够放入是数组中,但是C语言中,我们却可以使用结构来解决这个问题。 什么是结构体? 在C语言中,聚合数据类型能够同时存储超过过一个的数据,该类型有两种: 数组和结构 ,数组存储出的型同类型的元素,而结构却可以存储不同类型的元素(标量、数组、指针、结构),并且这些元素叫结构的 成员变量 ; 结构体的声明 struct tag //标签,为成员类表提供一个名字,作用就是允许多个声明使用同一个成员列表 { member - list ; //必须给出锁把包含的成员(类型+名字) } variable - list ; //结构变量列表 结构体变量的定义和初始化 定义变量: struct Point { int x ; int y ; } p1 ; //1、在声明时同时定义变量 struct Point p2 ; //2、定义结构体变量 初始化: 结构和数组的初始化方式相同,全部初始化或者是部分初始化,不过部分初始化剩余的成员将是使用缺省值进行初始化; 初始化的值必须和成员列表中顺序相同; struct Stu //类型声明 { char name [ 15 ] ; //名字 int age ; //年龄 } ; struct