当前位置:首页 » 编程语言 » 怎么找一条字符串中的子串c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

怎么找一条字符串中的子串c语言

发布时间: 2022-10-31 22:21:50

1. c语言怎么把字符串中的某一部分提取出来

用JQuery写

function QueryStr(split) {

split = split.split('.');

var result = split[1];

return result;

}

$(function () {

alert(QueryStr("www..com"));

});

会弹出

用Asp.Net 写

string url = "www..com";

string[] split = url.Split('.');

string result = split[1];

Label1.Text = result;

(1)怎么找一条字符串中的子串c语言扩展阅读:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

2. C语言 给出一个字符串,从里面能找出多少个子串

1.可以用strcmp函数来比较。 2.定义一个变量来计算花布条中的小饰条个数。 3.用定义的变量,做为在花布条中的位置变量。4.写一个字符串删除函数(当在花布条中一找到小饰条)。5.整体可以用一个do循环开始。

3. 用c语言在一个字符串中查找另一个字符串,并统计个数

例如,asdfgasfgasf,as,则输出3。

#include<stdio.h>

#include<stdlib.h>

intmain()

charS[100],T[20];

charch1,ch2;

printf("请输入主字符串:\n");

ch1=getchar();

inti=0;

while(ch1!='\n')

S[i]=ch1;

i++;

ch1=getchar();

printf("请输入要筛选的字符串:\n");

ch2=getchar();

intj=0;

while(ch2!='\n')

T[j]=ch2;

j++;

ch2=getchar();

intm,n;//m为S的下标,n为T的下标

m=0;

n=0;

intnum=0;//num用于记录选定单词出现的次数

while(m<=i&&n<=j)

if(S[m]==T[n])

m++;

n++;

else

m=m-n+1;

n=0;

if(n==j)

num++;

if(m==i+1)

printf("出现的次数是%d",num);

(3)怎么找一条字符串中的子串c语言扩展阅读:

while语句若一直满足条件,则会不断的重复下去。但有时,需要停止循环,则可以用下面的三种方式:

一、在while语句中设定条件语句,条件不满足,则循环自动停止。

如:只输出3的倍数的循环;可以设置范围为:0到20。

二、在循环结构中加入流程控制语句,可以使用户退出循环。

1、break流程控制:强制中断该运行区内的语句,跳出该运行区,继续运行区域外的语句。

2、continue流程控制:也是中断循环内的运行操作,并且从头开始运行。

三、利用标识来控制while语句的结束时间。

4. 用C语言编程解决从已知字符串中找出包含k个字符的所有“子串”,并打印。

#include <stdio.h>
#include <string.h>

char str[16];
int strlength;
int sublength;
char substr[8];
int cnt;
void findSubStr(int num,int startno);
int main(int argc, char* argv[])
{
memset(str,0,sizeof(str));
memset(substr,0,sizeof(substr));
strlength = 8;
sublength = 4;
cnt = 0;
int num = 0;
int startno = 0;
memcpy(str,"ABCDEFGH",sizeof("ABCDEFGH"));
findSubStr(num,startno);
printf("\n");
return 0;

}

void findSubStr(int num,int startno)
{
int i;

for(i = startno;i<=(strlength - sublength + num);i++){
substr[num] = str[i];
if (num >= (sublength-1)){
printf("%s\n",substr);
} else {
findSubStr(num+1,i+1);
}
}
}

上面代码是从“ABCDEFGH”中打印出包括4个字符的所有子串。

5. c+中怎么取一个字符串的子串

如果你用的是string类型的变量 可以把string类型变量当做数组来操作 便可方便地字符串进行各种
操作 例子如下:
int main()
{
string a;
cin>>a;
int length=a.length(); //取字符串的长度
string b;
for(int k=2;k<5;++k) //截取字符串a中2~4位置段的字串,并存入字符串b中
{
b+=a[k];
}
cout<<b;
return 0;
}

6. C语言编程:从键盘输入一个字符串,查找指定子串第一次出现的位置。求问题补充里的程序

原理类似于找素数,以下是具体代码(附注释):

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

intSearchString(chars[],chard[]);

main()
{
chars[81];//储存一串字符
chard[10];//储存要查找的字符
intflag;
//输入一串字符
printf("Inputastring:");
gets(s);
//输入想要查找的字符
printf("Inputanotherstring:");
gets(d);
//调用函数,输出结果
flag=SearchString(s,d);
if(flag==-1)
printf("Notfound! ");
else
printf("Searchingresults:%d ",flag);

system("pause");
}

//函数功能:在字符数组s中查找子串d,返回d在s中首次出现的位置,若找不到,则返回-1
intSearchString(chars[],chard[])
{
intlocation=-1;
inti,j;
//第一层循环遍历被查找字符串
for(i=0;s[i]!='';i++)
{
//第二层循环遍历要查找的字符,若有不同的字符则退出该循环
for(j=0;d[j]!='';j++)
{
if(s[i+j]!=d[j])
break;
}
//判断第二层循环是否全部执行,若全部执行则表示字符相等,保存位置
if(d[j]=='')
{
location=i+1;
break;
}
}
returnlocation;
}

7. c语言求一个字符串里有几个子串

#include
#include
int substring(char *str,char *str1);//函数原型
int main(void)
{
char str[64]={0};
char str1[16]={0};
int i,j,x;
printf("please put the string\n");
gets(str);//输入的原字符串
puts(str);
printf("\n");
printf("please put the string1 \n");
gets(str1);//输入的字符串中的子串
puts(str1);
printf("\n");
i=strlen(str);//原字符串长度
j=strlen(str1);//子串长度
printf("the string lenth is %d\n",i);
printf("the string lenth is %d\n",j);
x=substring(str,str1);
printf("then anwser is %d\n",x);
return 0;
}
int substring(char *str,char *str1)
{
int x=0;
char *p;//任意附个初始值
do{
p=strstr(str,str1);//1.p指针指向strstr的返回值。3.再一次循环到 这里函数的参数发生变化,p重新指向strstr返回值,如此循环。
if(p != NULL) {
str=p+1;//2.str同样指向strstr返回值p的下一个地址。
x=x+1;
}
}while(p!=NULL);
return x;
}

另一种方法,不用库函数来实现,来自他人。。。
int substring1(char *str,char * str1,int n,int m)
{
int i,j=0,k;
int x=0;
for(i=0;i<=n-m;i++) {
k = i;
while (1) {
if (str[k] != str1[j] ) {
j=0;
break;
} else if (str1[j+1] == '\0') {
x++;
j=0;
break;
} else {
k++;
j++;
}
}
}
return x;
}