C语言。截取字符串

作者&投稿:方依 (若有异议请与网页底部的电邮联系)
用C语言截取字符串~

如果允许使用库函数,那么实际这个非常简单:
#include #include void parse_str(char *str){ char *s = NULL, *p; if(str[0] != 's' || str[1] != '!') return; s=strdup(str+2); p = strtok(s, ":"); while(p) { printf("%s
", p); p = strtok(NULL, ":"); } free(s);}

例子如下:

直接编译,程序输出结果中任意输入字符串和数字,程序执行结果如下图所示:

扩展资料:字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

#include<stdio.h>
#include<string.h>
#include<ctype.h>
void print(char s[],int n,int m)
{
    int k;
    int i;
    char *p;
    k=strlen(s);
    p = s;
    for(i=n-1;i<n-1+m;i++)//从第n-1位置开始,截取m个字符
        putchar(*(p+i));
    printf("
");
 
}
void main()
{
    char *s,str[20];
    int m,n;
    printf("please input a string:
");
    s = str;
    gets(s);
    printf("the string is:");
    puts(s);
    printf("please input n and m
");
    scanf("%d%d",&n,&m);
    print(s,n,m);
}



c语言sscanf截取字符串函数获取后缀名
可以这么处理:include <stdio.h>int main(){char abd[80]="abcde.jpeg";char buf1[80], buf2[80];sscanf(abd, "%[^.]", buf1);\/\/先读取.之前的字符串,到.为止sscanf(abd, "%*[^.].%s", buf2);\/\/先忽略.之前的字符,再读取.之后的字符printf("%s\\n", buf1);printf("%s\\...

用C语言截取字符串
如果允许使用库函数,那么实际这个非常简单:include <string.h>#include <stdio.h>void parse_str(char *str){ char *s = NULL, *p; if(str[0] != 's' || str[1] != '!') return; s=strdup(str+2); p = strtok(s, ":"); while(p) { printf("%s...

c语言字符串截取的问题
问题1:p1=s+strlen(s)-1; 语句其实是让p1指向字符串s的最后一个字符,比如char *s = "aaa,bb,c,de";那么p1这个时候就指向e。虽然指向最后一个字符的方法不少,但我认为这个是最方便的,我没有想出比这个更好的。问题2:反向指就是说我们倒着来检测字符',',以问题1中的s为例,反向指...

C语言截取字符串
这个你只能写个循环自己判断了,示例代码如下 char str[] = "<1,2>,<3,4>,<4,5>";int num[10];int index = 0;int i;for(i=0;i<strlen(str);i++){ if(str[i]>='0' && str[i]<='9') \/\/如果是字符 0-9 num[index++] = str[i] - '0'; \/\/字符转换为...

c语言吧一个字符串的每一个字符截取出来,并输出有什么办法吗??_百度...
includeint main(){ char s[200]; int i; scanf("%s",s); for(i=0; s[i]; i++) printf("第%d个字符是:%c\\n",i+1,s[i]); return 0;}

c语言实现字符串的截取
我只写主函数了哈:int b,k=0; int a=strlen(A);\/\/A是要截取的数组for() (int i=0;i

如何用shell或bat或c语言完成字符串截取及拷贝?
你把这个脚本放在tmp目录下 改变一下执行权限 所有类似a_b_c_d.txt命名的文件,按照你的要求放到相应的目录下, 亲测可以。files=`ls *_*_*_*.txt`for file in ${files}do d1=`echo $file | awk -F '_' '{print $1}'` d2=`echo $file | awk -F '_' '{print $2}'...

C语言截取字符串,帮忙改下代码,我不会C,调试了好久也不行。
展开全部 c中的字符串以'\\0'结尾。你把条件改成 dbname_p != '\\0'也检查一下这几个变量是否都在后面加了这个结尾符。

C语言中字符串截取问题
如果56.1前面的长度固定,可以通过指针偏移直接取后面字符串 不固定的话,就根据规则自己判断截取.

C语言字符串截取
include<stdio.h>#define N 100int main(){ int s,n; char str[N]="My name is leon"; scanf("%d%d",&s,&n); if(s>=N) { printf("起始位置越界!"); return 0; } if(s+n-1>N) n=N-s; for(int i=s-1;i...

泉港区17345073571: 如何用C语言实现一个字符串的截取 -
居家小儿: char*subString(char*str,intstar,intlen)这个原型声明没有问题,传递进去一个字符串,起始字符的位置,以及截取的长度.按照这个意思来写最后是没有问题的.返回值为字符型指针可以在这个函数里面声明一个字符数组,最后将这个字符数组返回,...

泉港区17345073571: c语言中字符串的截取 -
居家小儿: char *p = “/home/c/aa.txt”; char *q; q=strrstr(p,"/"); q++; q = NULL; p 此时就截取文件路径了.

泉港区17345073571: c语言截取字符串 -
居家小儿: 给你一个思路:用指针指向字符串的最后,然后反向指,遇到“,”就结束,把指针起始位置到结束位置的读出来就行了.

泉港区17345073571: C语言.截取字符串 -
居家小儿: #include#include #include void print(char s[],int n,int m) { int k; int i; char *p; k=strlen(s); p = s; for(i=n-1;i putchar(*(p+i)); printf("\n"); } void main() { char *s,str[20]; int m,n; printf("please input a string:\n"); s = str; gets(s); printf("the string is:"); ...

泉港区17345073571: C语言 一个字符串函数的截取 -
居家小儿: 你可以先将字符串存放在一个字符数组中,然后根据输入的位置进行截取(复制到另一个字符数组中).

泉港区17345073571: C语言 怎么截取输入的字符串? -
居家小儿: #include #define SIZE 1000/* 输入小于1000个字符 */ void Intcpt(char *str, char *keyStr, char chOne, char chTwo) { int i, j; int count; for (i=0; str[i]!='\0'; i++)/* 开始查找 */ { if (chOne == str[i])/* 获取第一个标记 */ { count = 0;/* 初始化 */ for (j=i+1; str[j]!...

泉港区17345073571: C 语言中怎么截取字符串的一部分? -
居家小儿: str1="34+56"; int k=0,j=0; for(i=0;i<strlen(str1);i++) { if(str1[i]!='+') str2[k][j++]=str1[i]; else { k++;j=0; } } 运行过后这两个字符串就被存放在str2这个二维数组里了...

泉港区17345073571: C语言编写一个程序从特定的文件中提取特定的字符串. -
居家小儿: 按你追问的要求改了一下.这段代码能把键盘输入的特定字符串后面双引号内的文字提取出来存入XYZ.txt文件中.在提取过程中滤除了源文件中的'\n'和' '.供参考…… #include "stdio.h"// #include "string.h"// #include "stdlib.h"// void main(...

泉港区17345073571: C语言怎样截取字符串,比如abcdefghi截取cde -
居家小儿: char s1[]= "abcdefghi",s2[5]={0}; char *p = s1; p += 2; strncpy(s2,p,3); printf("%s\n",s2);

泉港区17345073571: c语言字符截取函数 -
居家小儿: 这是一段关键代码 int i=0; char ch[50]; fflush(stdin);//清除缓冲区 while((ch[i]=getchar())!='\n')//当输入字符不是回车是逐个截取字符i++; 应该是这个意思吧,输入一串字符然后逐个存入字符数组中.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网