C语言匹配数组里的内容,要怎么样匹配

作者&投稿:翠亲 (若有异议请与网页底部的电邮联系)
正则表达式怎么匹配到数组里的键值~

(.+?)=(\d+)
这样就可以了,用两个子模式可以提取到键名和键值

程序有误,修改如下:
#include
#include
void main(){
char sh[20];
gets(sh);
for(int i=0;i<20;i++)
{
if(sh[i]='@')
{
printf("判断出有字符@
");
break;
}
if(sh[i]='\0')printf("无字符@
");
}
}
扩展资料:
数组的使用规则:
1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。
3.如不给可初始化的数组赋初值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
参考资料:
百度百科-数组

  1. 如果是字符数组,可以使用strstr函数查找匹配。

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL。
    包含文件:string.h
    函数名: strstr
    函数原型:
    extern char *strstr(char *str1, const char *str2);
    语法:
    char * strstr(str1,str2)
    str1: 被查找目标 string expression to search.
    str2: 要查找对象 The string expression to find.
    返回值:若str2是str1的子串,则先确定str2在str1的第一次出现的位置,并返回此str1在str2首位置的地址。;如果str2不是str1的子串,则返回NULL。

  2. 如果是普通类型的数组,需要使用双重循环来实现匹配。

    例如:

    int a[10]={0,1,2,3,4,5,6,7,8,9,0};
    int b[3]={5,6,7};
    int i,j;
    for(i=0;i<7;i++){
     for(j=0;j<3;j++) if(a[i+j]!=b[j]) break; //进行匹配,如果其中一个不匹配,中断循环。
     if(j==3){    //寻找到匹配
       printf("匹配!");
       break;
     }
    }
    if(i==7){    //循环完仍未找到匹配
       printf("不匹配!");
    }


需要用到正则表达式。 linux下可以直接使用。windows下还需要其他库。

sscanf的自带正则表达式不知道能不能写出来,我写不出来,等其他人吧。

直接用strstr()库函数就好了~~~


C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的...
这样:int *a = (int *)malloc(sizeof(int) * n); \/\/动态分配数组空间 ,有几个元素,n就是几。for(i=0; i<n; i++){ a[i]=录入数值;} Sort(a, n);for(j=0; j<n; j++){ printf("%d",a[ij);\/\/输出的内容就是排序好了的 }\/\/下面方法是用来排序的 void Sort(int *a...

C语言中,同一个变量或数组里的内容可以分别赋值给另外两个甚至多个不...
是可以的,因为变量在赋值的时候只是将这个变量内的数据复制一份,放到另一个要赋值的变量中。如 int a=0,b,c;b=a;c=a;在执行完上述语句后,a,b,c都等于0。再如 int a[5]={1,2,3,4,5},b[5],c[5];for(int i=0;i<5;i++)b[i]=a[i];for(int i=0;i<5;i++)c[i]...

...个字符数组的内容连接后存放到另一个字符数组中 使用gets()输入字符...
include <stdio.h> include <string.h> char s1[256];char s2[256];char s3[512];\/\/s3=s1+s2 int main(){ int i,sum=0;char tmp;\/\/要统计的字符 printf("请输入s1,s2:\\n");gets(s1);\/\/输入字符串s1,s2 gets(s2);\/\/将s1的字符串复制到s3中 strcpy(s3,s1);\/\/将s3与s2相...

有关易语言计次循环调用数组内的项
.程序集 窗口程序集1 .程序集变量 分割后的IP, 文本型, , "0".程序集变量 N, 整数型 .子程序 _按钮1_被单击 分割后的IP = 分割文本 (编辑框1.内容, #换行符, ).计次循环首 (取数组成员数 (分割后的IP), N)网页_置浏览器代理 (分割后的IP [N]) '用的精易模块里面的网页_...

C语言编程:一个已经排好序的数组,往里插一个数,并找出他插到哪里...
2013-01-04 C语言有一个已排好序的整型数组,有10个元素,要求从键盘输入... 97 2014-05-11 c语言程序编写 有一个已排好序的数组,由键盘又输入一个数,要... 103 2020-06-03 有一个已排好序的数组,要求输入一个数后,将此数插入到数组中,... 2015-01-04 c语言向一个已经排好序的数组中插入一...

C语言做有一个数组,内放10个整数,要求找出最小的数和它的下标再将它和...
include "stdio.h"void main(){ int a[10],i,j,k,min;printf("请输入十个整数:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);min=a[0];for(i=0;i<10;i++){ if(a[i]<=min){ min=a[i];j=i;} } printf("输入数组中最小的数为a[%d]=%d\\n",j,a[j]);k=a[0...

c语言怎么做到对比字符数组里的数
如果是整型数组可以str【2】 == 3 但如果是字符型比较的是ASCII值,str[2] == '3' 或者 str[2] == (3的ASCII码)如果字符型的是整形数字的话就直接比较和你的一样

c语言题目:在数组内指定位置i插入元素x?
\/***SPACE***\/ for(j=9;j>i-1 ;j--)\/\/填j>i-1 \/***SPACE***\/ a[j+1]=a[j];\/\/填空2 a[j+1]=a[j]

C语言数组形式不匹配问题
name是数组,不是指针,list->name=n;这种形式的赋值只能是指针方式。如果希望把n指向的字符串内容赋给name,需要用strcpy。strcpy(list->name ,n);

C语言,将已知数组内容复制到另一个新数组,使复制产生的新数组包含已知数...
数组里面是整数吗?根据你的代码,有些错误需要指出:define n 10; 这句话不用加分号,加了就错了。for(i=0;a[j]!=a[i];i++)b[j]=a[j];这句话完全是算法错误。你是想实现当不重复的输入,如果你用a[i]和a[j]比,就不对了。假设输入1234567891 第一次,j=0,i=0;a[i]==a[...

临汾市15550339509: C语言匹配数组里的内容,要怎么样匹配 -
衡紫独活: 如果是字符数组,可以使用strstr函数查找匹配.strstr() 函数搜索一个字符串在另一个字符串中的第一次出现.找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL.包含文件:string.h ...

临汾市15550339509: C语言中判断两个数组内容是否相同! -
衡紫独活: 两个数组若长度不等,则两数组不等;若长度相等,则可用库函数memcmp(a,b,n);判断(其中a、b是两个数组指针,n是长度),返回0则a与b相等,否则不等.若是两个字符串则无论二者是否等长,都可直接调用库函数strcmp就可解决.该函...

临汾市15550339509: 在c语言中怎样将一个数组中的全部内容赋给另一个数组,有没有一步就可以完成,不用for语句. -
衡紫独活: 很明显你没有分清楚数组和字符串,对于字符串来说是可以的,因为有strcpy()和memcpy()这类函数调用可以直接复制,但是数组是不行的,一般都得用到一个循环. 函数返回数组只要返回只要返回首地址就可以了,比如你要返回的是int a[10]的数组,那么你定义函数的时候可以这样写:int *a func(){………………return a},即只要返回首地址,切忌a[10]不能再函数体中定义否则无意义.

临汾市15550339509: 如何用C语言求两个数组中元素的相似度 -
衡紫独活: 第一个可以用string.h里面的strcmp函数;第二个用两次两个嵌套的for循环就可以了,外层的作为将要取出元素的数组,内层的作为比较数组,将不相同的数放到第三个数组里.然后反过来再做一次.

临汾市15550339509: C语言一维数组匹配 -
衡紫独活: 考虑到你的入门水平,写一个入门级的程序#include <stdio.h> void main() { int a[10]; int b[60]; int i,j; int sameNum=0; printf("Please input the numbers of array a:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } printf("Please input the numbers of ...

临汾市15550339509: 单片机C语言怎么比较两个数组的内容是否相等啊? -
衡紫独活: 先假设是相等的,,,,,,循环,逐个比较,遇到不等的元素,就退出循环~ ~ ~ ~

临汾市15550339509: C语言中,怎样让数组中前后两个元素对调? -
衡紫独活: 设一个临时变量,将其中一个的元素1值赋给该变量,再将数组的另一个元素2赋给刚才的元素1,把临时变量的值赋给元素2,完事.即 int temp; temp=a[i]; a[i]=a[j]; a[j]=temp;

临汾市15550339509: c语言:如何输入一组数字放入数组中,并与另一个已初始化的数组进行比较? -
衡紫独活: 首先肯定要建立一个数组了int *p = (int *)malloc(5*sizeof(int));动态数组,因为不知道你是固定长度还是变长,如果固定长度直接 int a[n]就可以,第二,肯定是循环获取输入的数字,当然肯定你输入完后要输入一个结束符.没有碰到结束符,就会一直循环等待输入.当然如果长度>5,就需要在开辟空间了,具体看c的函数.两个数组比较就更简单了,具体看你想怎么比较了

临汾市15550339509: C语言中如何随机选取数组中的数字(程序代码请写出)? -
衡紫独活: 应该是a[2][3]={{1,3,2},{8,0,3}} 吧#include //cout函数的头文件 #include #include /* srand函数与rand函数的头文件*/ using namespace std; int main() { int a[2][3]={{1,3,2},{8,0,3}},x,y,z; srand ( (unsigned) time (NULL) ); x=rand()%2; //调用随机函数 y...

临汾市15550339509: C语言怎么让一个数组中的数一一对应和另外一个数组中的数相减 -
衡紫独活: 使用FOR循环就可以了 int i; int a[5]={1,2,3,4,5}; int a[5]={5,6,3,4,5}; for(i=0;i<5;i++) { printf("%d\n",a[i]-b[i]); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网