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

Posted

tags:

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

比如
输入 1,5,7,9,4
回车后得到 a[1]=1 a[2]=5 a[3]=7 a[4]=9 a[5]=4

如果是从输入读,那不用存字符串,直接存数组就好了
比如
scanf(“%d,%d....”,a,a+1,a+2...)
如果已经是字符串了,比如str,那么用sscanf
比如sscanf(str,“%d,%d....”,a,a+1,a+2...)追问

我的想法是
输入不固定数量的数据,比如
输入14,2,70
得到 a[1]=14 a[2]=2 a[3]=70
或者
输入29,61
得到 a[1]=29 a[2]=61
其中输入多少个数 不是固定的3个或2个,可以无限多。

参考技术A

    调用scanf函数读入字符串

    遍历字符串的每一个字符,记录字符串中数字的个数

    根据数字的个数调用malloc函数创建动态数组a

    再次遍历字符串并将数字字符减去'0',把得到的值填入数组a

追问

大一新生,,还没学到指针那块,能否用其他方法?

java读取文件中多个数据,放入不同数组

李开复 ,1197161814 ,14542223 ,326 ,3465874172750975 ,255 ,400 ,
Laini的袋鼠妈妈 ,2734949925 ,10364 ,32 ,3465897979167134 ,14 ,3 ,
假设如上,分别是人名,id,粉丝数,关注数等等,需要分别读取这些数据放入不同数组,该怎么实现

第一步,实现读取文件功能,定义方法public List<String> read(String filePath);这个方法是读取文件内容,每一行做一个string字符串存到列表list中,读取完后返回字符串列表;可以使用scanner类和fileinputstream结合实现,先new fileinputstream对象,再new scanner对象,之后通过scanner的nextline方法读取完所有数据,具体使用参考他们的api
第二步,拿到第一步读取的字符串列表,列表的size就表示多少条数据,循环遍历这个列表,之后读取到每一行数据,就使用String类的split方法,分割字符串,分割字符为:,逗号,分割后得到一个string数组,接下来就是依次拿到数组的元素然后存到你要存的地方了,怎么存看你需求了,你题目也没说清,自己琢磨吧
参考技术A 读取每行的数据(数据是每行存储),然后按逗号切割。保存最好还是使用对象Object。
一般的做法是 ObjectOutStream/ObjectInputStream 输入输出到文件中。
BufferedReader br = new BufferedReader(new FileReader(new File("")));
String str="";
while( (str = br.readLine())!=null)
String[] aa = str.split(",");
.....................................
追问

但是我想不同类型的数据存到不同的数组里,有很多行这样形式的数据,每行7个数,就是要建立7个数组,把每行的7个数分别放到7个数组里,而且数据别较多,想用arraylist实现成么

追答

不好取数据,如果要你取某个人的数据,你要查询7个arraylist,还要保证你知道他的位置在哪里。不如用List

追问

不是,我是奉命做新浪微博api的一个实践,但是才大一啊,底子太薄,我不是要查询,人名,id,粉丝数,关注数,是要复制到另一个文件里,微博地址的id,是要用做函数参数来获取评论和转发数,所以存到arraylist里,然后再写到另一个文件里就行了

追答

不错嘛 。。。大一就开始自己动手编程了。那也很简单,数据切割出来分别插入不同的文件就行了。BufferedReader/BufferdWriter ,可以选择不同的IO对象。

追问

承蒙老师看得起,呵呵,能稍微具体点么,谢了

参考技术B

结果长什么有效果图吗,

你使用

String s = "a,b,c";
String[] arr = s.split(",");

看看是不是你要的效果

参考技术C java读取文件中多个数据,放入不同数组
具体方法:

import java.util.Arrays;
public class Temp
public static void main(String[] args)
String InitProducts[] = "商品01","商品05","商品04","商品02","商品03";
String deleteProducts[] = "商品04","商品02";
String newProducts[] = new String[InitProducts.length - deleteProducts.length];
int count = 0;
for(int i=0;i<InitProducts.length;i++)
boolean flag = true;
String temp = InitProducts[i];
for(int j=0;j<deleteProducts.length;j++)
if(temp.equals(deleteProducts[j]))
flag = false;
break;


if(flag)
newProducts[count++] = temp;


System.out.println(Arrays.toString(newProducts));


参考技术D 先新建7个数组变量;
按行读取文件,每一行当作一个文本,然后以逗号为分隔符进行分割,得到临时数组变量,然后将临时数组变量中的每个元素放入对应数组中即可

以上是关于c语言如何分割字符串并将结果放入数组?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中 如何分割字符串

python split分割次数

TCL脚本中如何把一个字符串按空格分割后放入一个列表

C 语言二级指针案例 ( 字符串切割 | 返回 二维数组 作为结果 )

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

VB Split 分割 如何分割直接获取最后一组数组?