c语言中 如何分割字符串

Posted

tags:

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

RT 一个string类型的字符串 如aa,bb,cc,dd通过逗号隔开 如何将aa bb cc和dd 分别放入其他的变量里面

参考技术A c语言中没有 string class, 假定你指 char 字符串。
用 sscanf 方法可以分割。
char str2[]="aa 123,bb 456,cc 789,dd 000";
按逗号分割为4 部分:
aa 123
bb 456
cc 789
dd 000
-----------------
char str[]="aa,bb,cc,dd";
按逗号分割为4 部分:
aa
bb
cc
dd
-------------------------
#include <stdio.h>
main()

char str[]="aa,bb,cc,dd";
char str2[]="aa 123,bb 456,cc 789,dd 000";
char s[4][10];
int i;
sscanf(str,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1种方法
for (i=0;i<4;i++) printf("%s\n",s[i]);
sscanf(str2,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1种方法
for (i=0;i<4;i++) printf("%s\n",s[i]);
//-----------
for (i=0;i<strlen(str);i++) if (str[i]==',') str[i]=' '; // 第2种方法--替换成空格分隔
sscanf(str,"%s %s %s %s",s[0],s[1],s[2],s[3]);
for (i=0;i<4;i++) printf("%s\n",s[i]);
return 0;
参考技术B #include<stdio.h>
#include<string.h>
int main()

char str[]="aa,bb,cc,dd";
char newstr[99]="";
int i,j,k=0;
for(i=strlen(str)-1;i>=0;i--)

if(str[i]==',')

for(j=i+1,k=0;str[j];j++)

newstr[k++]=str[j];//复制逗号后面

newstr[k]=0;
puts(newstr);
str[i]=0;//删掉逗号后面


puts(str);
    return 0;

abap编程,字符如何分割?

一串例如20130704的数字,我只要前四位2013,ABAP里该如何组织语言?谢谢!

比如日期字段 mkpf-budat = 20130704
你要取前四位 用 mkpf-budat+0(4) 就是2013

+0代表从第一位开始算
(4)代表从第一位开始算一共4位

不知道您明白了吗,可以继续探讨~~~
参考技术A ABAP里面的偏移量标准语法:<f1>[+<o1>][(<l1>)]

表示字段 <f1> 中从 <o1>+1 位置开始且长度为 <l1> 的内容

比如data: lv_date like sy-datum value ‘20130704‘.
lv_date+0(4) 就是截取从第一位开始,长度为4的字符串’2013‘.

以上是关于c语言中 如何分割字符串的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何实现分割字符串为一个个单独的字符并保存

abap编程,字符如何分割?

Delphi里面字符分割函数是啥 如何分割以 为分割的字符串

c语言如何分割字符串并将结果放入数组?

c语言 讲一个字符串str以空格为分割,分割后输出到一个一维数组

C 语言 字符串命令 strstr()的用法 实现将原字符串以分割串分割输出