热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c语言用二维数组处理多个字符串,C语言第五章、用数组实现批量数据处理

5_1  数组的概念注:(1)在定义数组时,数组的元素个数(又称数组长度)必须是确定的,即只能是整型常量表达式。(2)完成数组的定义,引用元素时,下标从0开始计数。5_2  一维数组2.1   一维数

5_1  数组的概念

注:(1)在定义数组时,数组的元素个数(又称数组长度)必须是确定的,即只能是整型常量表达式。

(2)完成数组的定义,引用元素时,下标从0开始计数。

5_2  一维数组

2.1   一维数组的定义

2.2  一维数组的使用

1.   两种方法初始化

(1)在定义数组时同时初始化数组元素

注:①可以只部分元素初始化

②只能给元素逐个赋值,不能整体赋值。

(2)先定义,再初始化:采用循环结构如:

#include

int main()

{

int i,score[10];

for (i=0;i<10;i++)

{

scanf("%d",&score[i]);/*也可以是对元素直接赋值如:score[i]=i+2;*/

}

return 0;

}

2.C语言中只能逐个地引用数组元素,而不能对数组进行整体引用。如:

for (i=0;i<50;i++)

printf("%d",score[i]);/*而不是printf("%d",score);*/

3.删除数组元素

简要分析:功能实现   ①查找定位           ②移动

#include

#define N 10

int main()

{

int a[N]={1,2,3,4,5,6,7,8,9,10},x,i,k,flag=0;

printf("原数组值:");

for(i=0;i

printf("%4d",a[i]);

printf("输入要删除的元素值:");

scanf("%d",&x);

for(i=0;i

if (a[i]==x) {k=i;flag=1;break;}

if (flag==0) printf("不存在为%d的元素值!\n",x);

else

{

if (k==N-1) a[N-1]=0;

else

{

for (i=k;i

a[i]=a[i+1];

a[i]=0;

}

printf("\n删除元素%d后的数组值:",x);

for(i=0;i

printf("\n");

}

return 0;

}

2.一维数组的排序

【5-4】输入N个整数,将其按升序排列

①冒泡排序法:

#include

#define N 5

int main()

{

int a[N],t,i,j;

printf("请输入%d个数:",N);

for (i=0;i

scanf("%d",&a[i]);

for (i=0;i

for (j=0;j

if (a[j]>a[i])

{

t=a[j];a[j]=a[j+1];a[j+1]=t;

}

printf("升序排列结果如下:\n");

for(i=0;i

printf("%4d",a[i]);

printf("\n");

return 0;

}

②选择排序法:

#include

#define N 5

int main()

{

int a[N],t,i,j,k;

printf("请输入%d个数:",N);

for (i=0;i

scanf("%d",&a[i]);

for (i=0;i

{ k=i;

for (j=i+1;j

if (a[j]

k=j;

if (k!=i)

{

t=a[k];a[k]=a[i];a[i]=t;

}

}

printf("升序排列结果如下:\n");

for(i=0;i

printf("%4d",a[i]);

printf("\n");

return 0;

}

2.3.数组中递推的应用

【5-5】利用一维数组,输出斐波拉契数列:1,1,2,3,5,8,13,21,34,55,89……

#include

#define N 20

int main()

{

int a[N]={1,1},i;

for (i=2;i

a[i]=a[i-1]+a[i-2];

for(i=0;i

{

printf("%d\t",a[i]);

if((i+1)%5==0)

printf("\n");

}

return 0;

}

5_3  二维数组

_3-1.二维组的定义

_3-2.二维数组的使用

1.二维数组的初始化

2.二维数组元素的引用

3.二维数组的应用举例

5_4  字符数组

_4-1 字符数组的定义

_4-2 字符数组和字符串

_4-3 字符数组的初始化

①逐一赋值:char str[10]={C',' ','p','r','o','g','r','a','m'};

②字符串赋给指定的数组:char str[10]={"C progaram"}

_4-4.  字符数组的输入输出

1. 用格式符“%c”逐个输入输出数组中的字符

【例5-8】逐个输入/输出数组中的字符

#include

#include

int main()

{

char c[10];

int i;

printf("请输入10个字符:");

for(i=0;i<10;i++)

scanf("%c",&c[i]);

printf("您输入的10个字符为:");

for (i=0;i<10;i++);

printf("%c",c[i]);

printf("\n");

return 0;

}

2. 用格式符“%s”将整个字符串一次输出,遇到‘\0’停止输出(停止后不会自动换行)。

(1)【例5-9】

#include

int main()

{

char c[]="Program";

printf("%s\n",c);

c[4]='\0';

printf("%s\n",c);

return 0;

}

注:数组下标从0开始计数,所以c[4]是第五个数即‘\0’,结束。

(2)用“%s”输出字符时,printf 函数中的输出项为元素的地址如:

char c[]="Program";

printf("%s",&c[1]); /*结果为:rogram*/

(3)  可用scanf输入一个字符串,系统默认以空格作为一个串的输出结束标志如:

char c[20];

scanf("%s",c);

printf("%s",c);

键盘输入:you are a student.

结果为:you

注:如果要输入的字符串中本来就有空格字符,则不能使用格式控制符“%”将整个字符串输入。此时,通常可采用格式符“%c”逐个输入数组中的字符或字符串处理函数gets来接收字符串。

_4-5  常用的字符串处理函数

头文件stdio.h 包含:输入、输出、合并、修改、比较、转换、复制、搜索等几类。

而其他字符串函数应包含头文件“string.h”

1.字符串输出函数puts

2.字符串输入函数gets

#include

int main()

{

char str [15];

printf("请输入一个字符串:");

gets (str)

puts("您输入的字符串如下:");

puts (str);

return 0;

}

①当输入的字符串中含有空格时,输出仍为全部字符串。使用gets函数接受字符串时,只以回车作为结束标       志。这是与scanf函数不同的。

②使用puts函数输出字符串时,其参数可以是字符数组名,也可以是字符串常量。

③puts函数完全可以由printf函数取代,当需要按比较灵活的格式输出时,通常使用printf函数。

3.字符串连接函数strcat

功能:把字符数组2中的字符串连接到字符数组1中字符串的后面,字符串1的串结束标志'\0'自动删去。字符数组名2可以字符串常量。

一般调用格式:strcat(字符数组名1,字符数组名2)如:

#include

#include

{ char str1[30]="This a";

char str2[10]="book";

strcat(str1,str2);

puts(str1)

return 0;

}

4.  字符串复制函数strcpy

功能:把字符数组2中的字符串复制到字符数组1中。串结束标志'\0'也一同拷贝。"字符数组名2"可以字符串常量。

格式:strcpy(字符数组名1,字符数组名2)

#include

#include

int main()

{

char str1[15],str2[]="C Language";

strcpy (str1,str2);

puts(str1);

return 0;

}

5.  字符串比较函数strcmp

功能:两个数组(字符串)按照ASC‖码顺次比较,并由函数返回值比较结果。

字符串1=字符串2,函数返回0值;

字符串1>字符串2,函数返回>0值

字符串1

格式:strcmp (字符数组名1,字符数组名2)

6.求字符串长度的函数strlen

功能:测出字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值

格式:strlen(字符数组名)

5_5  数组的应用举例


推荐阅读
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
author-avatar
ccsv0601604
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有