发布网友 发布时间:2022-04-26 17:01
共4个回答
热心网友 时间:2023-05-14 09:51
#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;
}
扩展资料
C语言读取主字符串中指定的字符串
#include<stdio.h>
#include<string.h>
intmain()
{
charstr[100];
sscanf("2737237:348384122","%*[^:]:%[^\n]",str);//使用正则表达式:从:开始读取到最后
printf("%s\n",str);
return0;
}
热心网友 时间:2023-05-14 09:51
#include <stdio.h>
int fun(char *s)
{
char t[80];
int i, j;
for(i=0; s[i]; i++) /*将串s拷贝至串t*/
t[i]=s[i];
t[i]='\0';
for(i=0,j=0; t[i]; i++)
/*对于数字字符先写一个$符号,再写该数字字符*/
if(t[i]>='0' && t[i]<='9')
{
s[j++]='$';
s[j++]=t[i];
}
/*对于非数字字符原样写入串s*/
else
s[j++]=t[i];
s[j]='\0'; /*在串s结尾加结束标志*/
return 0;
}
int main()
{
char s[80];
printf ( "Enter a string:" );
scanf ("%s", s); /*输入字符串*/
fun(s);
printf ("The result: %s\n", s); /*输出结果*/
return 0;
}
运行结果:
Enter a string:A1B23CD45
The result: A$1B$2$3CD$4$5
扩展资料
1、字符串是由若干有效字符构成且以字符'\0'作为结束标志的一个字符序列。、
2、字符串常量是用一对双引号括起来的一串字符,如“happy”。其中'\0'作为字符串的结束标志,在这里可不显式输出,C编译程序自动在其尾部自动添加字符'\0'。
3、C语言中只提供了字符数据类型,没有提供字符串数据类型,C语言中的字符串是通过字符数据来实现的,所有表示字符串的字符数组的最后一个元素都是空字符(ASCII 码值为0的字符'\0')。
热心网友 时间:2023-05-14 09:52
先将所有的读进来存在一个字符串中,然后用字符分割函数strtok()
原型:char *strtok(char s[], const char *delim);
功能:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串;
例如:strtok("abc,def,ghi",","),最后可以分割成为abc def ghi.尤其在点分十进制的IP中提取应用较多;
说明:strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针;
返回值:从s开头开始的一个个被分割的串。当查找不到delim中的字符时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
例如
热心网友 时间:2023-05-14 09:52
#include<stdio.h>