问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间: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中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

例如

  char str[] = "now # is the time for all # good men to come to the # aid of their country";
    char delims[] = "#"; //分割字符
    char *result = NULL;
    result = strtok( str, delims );//初始化
    while( result != NULL ) { //循环判断,没有分割完时,继续分割
        printf( "result is \"%s\"\n", result );//输出分割的内容
         result = strtok( NULL, delims );//返回下一次分割的字符串
    }
以上代码的运行结果是:
   result is "now "
    result is " is the time for all "
    result is " good men to come to the "
    result is " aid of their country"

热心网友 时间:2023-05-14 09:52

#include<stdio.h>
#define N 1000
main()
{
int i,begin,end;
char str[N];
scanf("%s",str); /*输入字符串*/
scanf("%d %d",&begin,&end); /*输入要读取的起始位置*/
for(i=begin-1;i<end;i++)
printf("%c",str[i]);
printf("\n");
}
例如 输入:234ed5ab
输入:4 4
输出:e
输入:234ed5ab
输入:3 5
输出:4ed
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 C语言如何取一串字符串中的某个字符 年夜饭是怎样的 年夜饭什么时候吃的? 年夜饭的来历20字是什么? word 每行前的数字如何去掉?在线等答案。 年夜饭一般有哪些菜 复制到word的文件 怎么去除行前面的数字编号 年夜饭是什么时间 年夜饭又称什么? 年夜饭又称什么是什么的晚餐? 年夜饭是什么时候? 年夜饭是除夕还是初一 年夜饭的由来和意义是什么? 想问一下年夜饭是什么? 如何把word标题前的数字全部去掉? 怎样取消wps自作聪明的段落前自动加上数字 word 改掉前面的数字 怎么把WORD前面的数字去掉? Word里怎么把段落编号去掉? 如何用word把章节标题前面的数字去掉? C编程问题:如何从一个字符串的某位置取出一部分字符? 为什么电脑右下角的显示栏里有一个空位 啥都不显示 c语言截取字符串其中一部分。 右下角图标显示不完全,就是图标不见了有个空位 河南人喝酒有什么“怪习俗”呢? c中取修改字符串中的某个字符 经常泡水喝的白色的东西都有什么 用c语言提取字符串中的数字 河南啤酒有哪些啤酒企业集团, 为什么我的电脑右下角有一部分是空的呢? c语言中怎么从字符串中取字符 为什么我的电脑右下角小图标的地方总是有个空白的位置呢? 在河南商丘,为什么“喝茶”可以指喝白开水和吃晚饭? 我的电脑右下角总是有一块空白区域 河南人一般都吃什么的? 河南吃什么 河南人在方言中“白”是怎么读? 河南人的早餐都吃什么?河南的早餐又有哪些特色? 河南人喜欢吃什么? 河南方言的白不老是啥