首页 > 其他分享 >二维字符型数组和函数

二维字符型数组和函数

时间:2024-08-02 08:59:49浏览次数:15  
标签:字符 函数 10 int ret 二维 数组 字符串 include

二维字符型数组

char a[5][10]

可以存储最大长度为为10的,5个字符串;

按行初始化:a[5][10]={“hello”,“world“,“who”,“are”,“you”}


  char s[3][10] = {{"hello"},{"world"},{"english"}};
  
  gets(s[0]); //s[0] 就是第0行 这个一维字符型数组的数组名 
  
  scanf();
  
  char s1[10];
  
  gets(s1);

可以逐个字符串存储进行初始化

注:
自己编写字符串函数时,形参要写成指针形式,这样比较符合字符串函数的操作思想,也会显得更加专业一点,也就是说简单的函数要显得更加专业一点。

字符串排序

主要是用strcpy给字符串赋值。

 1 #include <stdio.h>
  2 #include <string.h>
  3 
  4 int main()
  5 {
  6     char s[5][10];
  7 
  8     int n;
  9     int i = 0;
 10     printf("Input 5 string\n");
 11     for(i = 0;i<5;i++)
 12     {
 13         gets(s[i]);
 14     }
 15     int j;
 16     int k = 0;
 17     char max[10] ;
 18     strcpy(max,s[0]);
 19     for(i = 0;i<4;i++)
 20     {
 21         for(j=i+1;j<5;j++)
 22         {
 23 
 24             if(strcmp(s[i],s[j]) > 0)
 25             {
 26                 strcpy(max,s[i]);
 27                 strcpy(s[i],s[j]);
 28             
 29                 strcpy(s[j],max);
 30             }
 31         }
 32     }
 33         for(i=0;i<5;i++)
 34         printf("s[%d] = %s\n",i,s[i]);                                                                                                                               
 35 
 36 
 37     return 0;
 38 }
 39 

.二分查找字符串

主要是用strcmp替换比大小。

这里需要注意while判断条件,和整数一样,代表下标,而不是用数组中字符串长度strcmp比较。

如果字符串没有,则会和整型一样,begin和end会错开,导致end>begin不成立

  1 #include <stdio.h>
  2 #include <string.h>
  3 
  4 int main()
  5 {
  6     char s[5][10] = {"a","b","c","d","e"};
  7     int begin = 0;
  8     int end = 4;
  9     int mid;                                                                                                                                                         
 10     char n[10];
 11     gets(n);
 12     while(begin<=end)
 13     {
 14         mid = (begin+end)/2;
 15         if(strcmp(s[mid],n)>0)
 16         {
 17             end = mid -1;
 18         }else if(strcmp(s[mid],n)<0)
 19         {
 20             begin = mid + 1;
 21         }else 
 22             break;
 23     }
 24         if(begin<=end)
 25         {
 26             printf("found the string s[%d] = %s\n",mid,s[mid]);
 27         }else
 28             printf("not found\n");
 29             
 30     return 0;
 31 }

函数---function

函数定义:表示把功能实现出来。

函数调用 :表示使用功能。

类型说明符 函数名(形式参数1,形式参数2,形式参数3,……)

{

        函数体代码;

}

(1)类型标识符

            数据类型 //表示函数要带出的结果的类型。

                注意:数组类型不能做函数返回结果的类型。

                       a.如果函数不需要带出结果,此时返回结果类型为void。

                        b.如果返回结果的类型与类型说明符不一致,以类型说明符为准,最终结果的类型,都会转为类型说明符所表示的类型。

                        c.如果没有写返回结果类型,默认为int型。

                        d.函数体中没有返回值,不需要写return 返回值。

(2)函数名

             标识符,命名规则符合标识符命名规则。

(3)形式参数

           表示调用函数时需要用到的实际参数,每个形参都有自己对应的数据类型

(4)函数体代码

          实现函数具体功能部分d代码。

函数定义位置:

1.main函数之前.

2.main函数之后,需要在调用函数之前声明.

注意:函数传参是传递的数值 ,值传递。

eg:

  1 #include <stdio.h>
  2 #include <string.h>
  3 
  4 int add(int num1,int num2)  //创建函数
  5 {
  6     int sum;
  7     sum = num1 +num2;
  8     return sum;
  9 }
 10 
 11 int main()
 12 {
 13     int ret;
 14     ret = add(4,6);//调用函数
 15 
 16     printf("ret = %d",ret);                                                                                                                                          
 17     return 0;
 18 }
~        

练习:

写一个判断输入数字是不是素数的函数,并使用

 1 #include <stdio.h>
  2 #include <string.h>
  3 #include <math.h>
  4 int sushu(int num1)
  5 {
  6     int i,n;
  7     for(i=2;i<sqrt(n)+1;i++)
  8     {
  9         if(num1==1&&num1==2)
 10             n = 1;
 11         if(num1%i==0)
 12         {
 13             n = 0;
 14             break;
 15         }
 16         if(i>=sqrt(n))
 17         {
 18             n = 1;
 19         }
 20     }
 21     return n;
 22 }
 23 
 24 int main()
 25 {
 26     int ret,n;
 27     printf("Input a num:\n");
 28 
 29     scanf("%d",&ret);
 30 
 31     n = sushu(ret);
 32 
 33     if(n==0)
 34     printf("%d is not sushu\n",ret);
 35     else
 36         printf("%d is sushu\n",ret);                                                                                                                                 
 37 
 38     return 0;
 39 }

附加:void bzero(void *s,size _t  n)s为首地址,n表示从首地址开始后n个字节清零。

标签:字符,函数,10,int,ret,二维,数组,字符串,include
From: https://blog.csdn.net/2201_75286049/article/details/140842980

相关文章

  • 字符串相关函数、二维数组-
    目录strcpy--字符串复制函数strcat--字符串拼接函数strcmp--字符串对比函数字符串相关函数:二维数组初始化:strcpy--字符串复制函数char*strcpy(char*dest,constchar*src);功能:  将src中字符串拷贝到dest中 用法: strcpy(dest,src);//dest是一个字......
  • 数组part02
    2024年8月1日,今天学习了数组的第二部分。1.巩固了昨天的双指针问题,即滑动窗口/双指针;注意,双指针是为了减少for循环,使用的时候小心循环的写法和快慢指针的增长方法。2.学习了数组模拟的螺旋矩阵问题,注意循环不变量;3.学习了前缀和的方法,前缀和常用来解决区间和问题,其实是避免重复......
  • js slice 截取数组使用
    slice()是JavaScript中用于提取数组的一部分或字符串的一部分的方法。slice()不会修改原始数组或字符串,而是返回一个新数组或字符串。对于数组语法:array.slice(begin,end)begin:要提取的起始索引(包含)。如果省略,默认从索引0开始。end:要提取的结束索引(不包含)。如果省略......
  • js splice使用,增删数组操作方式
    splice是JavaScript数组对象的一个方法,用于增删数组中的元素。它的基本语法如下:array.splice(start,deleteCount,item1,item2,...)start:指定开始修改的位置索引。deleteCount:可选,指定要删除的元素个数。如果为0,则不删除元素,只插入新元素。item1,item2,...:可选,要插......
  • 数组的合并
    /*数组A:1,7,9,11,13,15,17,19;数组b:2,4,6,8,10两个数组合并为数组c,按升序排列。*/publicclassTest5{publicstaticvoidmain(String[]args){int[]arr1={1,7,9,11,13,15,17,19};int[]arr2={2,4,6,8,10};//1、创建一个新数......
  • javascript学习 - 数组应用
    什么是数组之前的学习中,如果我们要存储一个值,一般都是通过变量来存储。但如果我们现在想要存储一系列的值,又该如何存储呢,你可能会说可以用多个变量来进行存储。这种方法也可以,但如果你想,一旦值过多,那岂不是就要多个变量,到时候管理就很混乱了。这时候就想,有没有一个可以存储......
  • 重头开始嵌入式第八天(字符串,二维数组)
    今天继续介绍字符数组以下是一些常见的C语言字符串处理函数的介绍、函数本体、返回值、用法及实现示例: 以下是 puts 和 gets 函数的介绍、函数本体、返回值、用法及实现示例:字符处理函数puts() 函数-函数意思:将字符串输出到标准输出(通常是屏幕)并换行-函数......
  • py调用webservice array数组老是为空的问题
    pythonwebserbiceserverimportloggingfromflaskimportFlaskfromspyne.applicationimportApplicationfromspyne.protocol.soapimportSoap11fromspyne.server.wsgiimportWsgiApplicationfromwerkzeug.servingimportrun_simplefromwerkzeug.middleware......
  • 11:Python字符串的魔法属性2
    test='alex'v=test[2]#索引,下标,获取字符串中的某一个字符print(v,-1)test='alexsasdf'v=test[0:3]#0=<v<3print(v,-2)v1=test[0:-1]#切片print(v1,-3)v2=len(test)print(v2,-4)v3=len("我是中国人")#len获取当前字符串中由几个字符组成,python2......
  • 正则表达式:有没有一种方法可以提取单引号之间的所有子字符串,而不提取撇号之间的子字符
    基本上,我有一个包含英语语句的数据集。有些语句包含前导/尾随标点符号,所以我想清理和标准化它们。标准化的标准是删除所有前导/尾随标点符号,语句的第一个字符大写,并且语句以句点结尾。我有一个函数可以执行此操作并将其应用于数据集中的每一行。如果有帮助的话,这里是一个代码......