當前位置:首頁 » 編程語言 » 怎麼找一條字元串中的子串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;
}