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

字符串的位置c语言

发布时间: 2022-03-31 12:42:08

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]={""};
chars2[50]={""};
fflush(stdin);
scanf("%[^ ]",s1);
fflush(stdin);
scanf("%[^ ]",s2);
intre=FindStr(s1,s2);
printf("%d",re);
return0;
}

Ⅷ C语言中,读取字符串中的一个位置

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

/**

*查找字符串首次出现的位置

*

*charneedle[]="name";

*charhaystack[]="mynameiszhangwoods";

*printf("strpospositionis:%d",strpos(haystack,needle));

*

*@paramhaystack在该字符串中进行查找

*@paramneedle要查找的字符串

*@return返回needle存在于haystack字符串起始的位置-1代表未找到

*/

intstrpos(constchar*haystack,constchar*needle)

{

intn,p=0;

if(*haystack&&*needle)

{

while(*haystack)

{

for(n=0;*(haystack+n)==*(needle+n);n++)

{

if(!*(needle+n+1))

{

returnp;

}

}

p++;

haystack++;

}

}

return-1;

}

intmain(void)

{

charneedle[]="name";

charhaystack[]="mynameiszhangnamewoods";

printf("data:%d",strpos(haystack,needle));

return0;

}

(8)字符串的位置c语言扩展阅读

C语言读取主字符串中指定的字符串

#include<stdio.h>

#include<string.h>

intmain()

{

charstr[100];

sscanf("2737237:348384122","%*[^:]:%[^ ]",str);//使用正则表达式:从:开始读取到最后

printf("%s ",str);

return0;

}

Ⅸ C语言编程:将一个字符插入到字符串中的指定位置

Description:把字符串截取成2段,将指定字符插入,让你将它们再连接。 #include <stdio.h> #include <string.h> int main(void) { char str[256],s1[256],s2[256]; char ch; int i,j=0,k=0; printf("输入字符串:\n"); gets(str); printf("输入要插入的字符和位置:\n"); scanf("%c%d",ch,n); for(i=0;i<n-1;i++) { s1[j++]=str[i]; } s1[j]=ch;//插入指定字符 for(j=i;j<strlen(str);j++) { s2[k++]=str[j]; } strcat(s1,s2); puts(s2); return 0; }