C 语言中怎么截取字符串的一部分

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言中怎么截取字符串的一部分相关的知识,希望对你有一定的参考价值。

可改变数组大小,满足你可能的输入状况。

#include<stdio.h>
int main()
char str[200]; // 假定输入1行字符串,长度在200以内
char s[20][16]; // 假定 用逗号分隔 的部分 约20个,每个长度 不超过16字符
double d[20]; // 假定数据个数 不超过 20 个
int i,j=0,L,n=0;
fgets(str,200,stdin); // 读入一行 字符串,含换行符
L = strlen(str); //计算输入的字符串长度

for (i=0;i<L;i )
s[n][j]=str[i]; j ;
if (str[i]==\',\' || str[i]==\'\\n\') s[n][j-1]=\'\\0\'; j=0; n ; // 取出 逗号分隔 开的字符串

for (i=0;i<n;i ) printf("%s\\n",s[i]); //输出这些 分开的字符串

j=0;
for (i=0;i<n;i )
if ( sscanf(s[i],"%lf",&d[j]) == 1) j ; // 能转换为数的一个一个转换

printf("\\n=======values========\\n");
for (i=0;i<j;i ) printf("%lf\\n",d[i]); // 输出这些数据

return 0;
参考技术A 用memcpy函数。如memcpy(x,y+3,4);*(x+5)='\0';,这样就把字符串y中的下标为3的字符开始的连续4个字符拷贝到了x,然后*(x+5)='\0';在4个字符后补一个'\0'构成字符串。 参考技术B snprintf 你会需要用到这个函数的本回答被提问者和网友采纳

请问:C语言中要产生指定长度的空格字符串是用啥函数,从左右截取子串及中间截取子串的函数又是啥?

及需这四个函数,谢谢!!!

memset或strnset函数可用来对一段内存空间全部设置为某个字符
例如,产生n个空格
char s[20]="";
memset( s, ' ', n);s[n]=0;
strnset( s, ' ', n );s[n]=0;

截取子串
char s[]="abcdefghijklmn", char d[20];
左截取s串n个字符到d
strncpy(d, s, n);d[n]=0;
右截取s串n个字符到d
strncpy(d, s + strlen(s) - n, n);d[n]=0;
s第i个位置开始截取n个
strncpy(d, s + i - 1, n);d[n]=0;
参考技术A 除了直接初始化成空格字符串以外,只能一个一个读入,字符串连续读入遇到空字符会自动结束。没有生成这种字符串的库函数。

截取字符串可以用strtok,不过那样需要字符串中有相应标记。而且只能顺序截断。

其余的处理标准库函数应是没有,自己写吧。

以上是关于C 语言中怎么截取字符串的一部分的主要内容,如果未能解决你的问题,请参考以下文章

PHP怎么用substr函数截取字符串中的某部分

C语言截取字符串

js中怎么截取不确定长度的字符串,截取后保留后面的部分

请问:C语言中要产生指定长度的空格字符串是用啥函数,从左右截取子串及中间截取子串的函数又是啥?

c语言中如何截取文件的后缀?

c++怎么提取字符串的一部分