Ⅰ c語言計算字元串中某字元的位置和次數
#include
<stdio.h>
char
a[1000000];
//
這么大的字元數組不要放main裡面
int
main()
{
char
c;
int
i,k;
while((gets(a))!=eof)
{
c=getchar();
for(i=0;a[i]!='\0';i++)
{
if(i==0)
k=0;
if(a[i]==c)
k++;
}
printf("%d\n",k);
gets(s);
//
在輸出答案k以後,把第二行一個小寫字母後面的'\n'通過gets(s)去掉
}
return
0;
}
Ⅱ c語言如何對字元串進行位置查詢
包含文件:string.h
函數名:
strstr
函數原型:
extern
char
*strstr(char
*str1,
const
char
*str2);
語法:*
strstr(str1,str2)
str1:
被查找目標string
expression
to
search.
str2:
要查找對象The
string
expression
to
find.
返回值:若str2是str1的子串,則返回str2在str1的首次出現的地址;如果str2不是str1的子串,則返回NULL。
例子:
char
str[]="1234xyz";
char
*str1=strstr(str,"34");
cout
<<
str1
<<
endl;
顯示的是:
34xyz
函數實現
1.Copyright
1990
Software
Development
Systems,
Inc.
char
*strstr(const
char
*s1,const
char
*s2)
{
int
len2;
if(!(len2=strlen(s2)))//此種情況下s2不能指向空,否則strlen無法測出長度,這條語句錯誤
return(char*)s1;
for(;*s1;++s1)
{
if(*s1==*s2
&&
strncmp(s1,s2,len2)==0)
return(char*)s1;
}
return
NULL;
}
2.Copyright
1986
-
1999
IAR
Systems.
All
rights
reserved
char
*strstr(constchar*s1,constchar*s2)
{
int
n;
if(*s2)
{
while(*s1)
{
for(n=0;*(s1+n)==*(s2+n);n++)
{
if(!*(s2+n+1))
return(char*)s1;
}
s1++;
}
return
NULL;
}
else
return
(char*)s1;
}
3.
GCC-4.8.0
char
*strstr(const
char*s1,const
char*s2)
{
const
char*p=s1;
const
size_tlen=strlen(s2);
for(;(p=strchr(p,*s2))!=0;p++)
{
if(strncmp(p,s2,len)==0)
return
(char*)p;
}
return(0);
}
應用舉例
//
strstr.c
#include
<syslib.h>
#include
<string.h>
main()
{
char
*s="GoldenGlobalView";
char
*l="lob";
char
*p;
clrscr();
p=strstr(s,l);
if(p)
printf("%s",p);
else
printf("NotFound!");
getchar();
return0;
}
//功能:從字串」
string1
onexxx
string2
oneyyy」中尋找」yyy」
(假設xxx和yyy都是一個未知的字串)
char
*s=」string1onexxxstring2oneyyy」;
char
*p;
p=strstr(s,」yyy」);
if(p!=NULL)
printf(「%s」,p);
else
printf("notfound\n");
說明:如果直接寫語句p=strstr(s,」one」),找到的是onexxxstring2oneyyy
char
*mystrstr(char*s1,char*s2)
{
if(*s1==0)
{
if(*s2)
return
(char*)NULL;
return
(char*)s1;
}
while(*s1)
{
int
i=0;
while(1)
{
if(s2[i]==0)
return
s1;
if(s2[i]!=s1[i])
break;
i++;
}
s1++;
}
return
(char*)NULL;
}
Ⅲ C語言實現定位一字元串的首位置
我知道了,你不要用scanf()來完成字元串的輸入,因為scanf()默認空格,回車,
製表符
都是字元串結束的標志
所以
用gets()函數,它允許輸入空格,只有回車後,字元串才結束輸入
程序如下
#include<stdio.h>
main()
{
int
i;
char
a[50];
定義數組
gets(a);
輸入字元串
while(a[i]!='a')
判斷位置
i++;
printf("位置在%d位",i+1);
}
如果哪有看不懂的,可以補充
Ⅳ 將一個字元串插入到另一個字元串的指定位置。c語言編寫
將指定位置以後的字元分別往後移一個位置,再將要插入的字元串放到指定位置就行了,別忘了最後一個字元要賦為'\0』哦親~~代碼如下,僅供參考~
void insert(char * str,char c,int position)
{
int i;
int len=strlen(str);
for (i=strlen(str)-1;i>=position;i--)
{
str[i+1]=str[i];
}
str[position]=c;
str[len+1]='\0';
}
str就是需要插入的字元串,c是需要插入的字元,position是插入的位置,即字元的下標(從0開始)
嘿嘿,希望對你有用哦~~
Ⅳ (c++或C語言)查找文件中字元串的位置
頭文件:#include <string.h>
strchr() 用來查找某字元在字元串中首次出現的位置,其原型為:
char * strchr (const char *str, int c);
【參數】str 為要查找的字元串,c 為要查找的字元。
strchr() 將會找出 str 字元串中第一次出現的字元 c 的地址,然後將該地址返回。
注意:字元串 str 的結束標志 NUL 也會被納入檢索范圍,所以 str 的組後一個字元也可以被定位。
【返回值】如果找到指定的字元則返回該字元所在地址,否則返回 NULL。
返回的地址是字元串在內存中隨機分配的地址再加上你所搜索的字元在字元串位置。設字元在字元串中首次出現的位置為 i,那麼返回的地址可以理解為 str + i。
提示:如果希望查找某字元在字元串中最後一次出現的位置,可以使用 strrchr() 函數。
【實例】查找字元5首次出現的位置。
復制純文本新窗口
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char *s = ""; char *p; p = strchr(s, '5'); printf("%ld\n", s); printf("%ld\n", p); system("pause"); return 0;}
Ⅵ 查找字元串中指定字元的位置c語言
C字元串就是字元數組,用指針遍歷對比就行了。
Ⅶ 求標准C語言,查找某字元串在指定位元組串中的位置代碼。
#include<stdio.h>
#include<stdlib.h>
intFindStr(char*source,char*target)
{
inti,j;
ints_len=strlen(source);
intt_len=strlen(target);
if(t_len>s_len)
{
return-1;
}
for(i=0;i<=s_len-t_len;i++)
{
j=0;
intflag=1;
if(source[i]==target[j])
{
intk,p=i;
for(k=0;k<t_len;k++)
{
if(source[p]==target[j])
{
p++;
j++;
continue;
}
else
{
flag=0;
break;
}
}
}
else
{
continue;
}
if(flag==1)
{
returni+1;
}
}
return-1;
}
intmain(intargc,char*argv[])
{
chars1[50]={"