一个 aw.txt 的文件,逗号隔开,里面类似“
0.12 0.123 0.534,0.324 0.25 0.5"
每个逗号里面有空格、小数点,逗号数量未知,但两逗号间最多15个字符。我要分别把两个逗号之间的字符(包括空格)取出来,单独放到其他数组里面。
求帮!!
对äºè¿ä¸ªé®é¢ï¼æ两ç§è§£å³æ¹æ¡ã
ä¸ï¼ç´æ¥ç¨scanfè¿è¡æ ¼å¼åè¾å ¥ã
满足以ä¸ä¸¤ç§æ¡ä»¶å¯ä»¥ç¨scanfè¿è¡è¾å ¥:
1 è¦è¾å ¥çæ°æ®ä¸ä¸è½æ空ç½ç¬¦å·ï¼å 为ç¨scanfè¾å ¥æ¶ç©ºç½ç¬¦å·ä¼è¢«å¿½ç¥ã
空ç½ç¬¦å·å æ¬ç©ºæ ¼(' ')ï¼å¶è¡¨ç¬¦('\t'),æ¢è¡ç¬¦('\n')çã
2 æ件ä¸è¢«åéå¼çæ°æ®ç±»åæ¯ä»¥ä¸å®çåºå®è§å¾åºç°çã
举å ä¸ªå ¸åçä¾åä¾ç解ã
ä¾ä¸ï¼
ææé½æ¯é½å¨ä¸è¡ï¼å为intåä¸é½ç¨éå·åé
æè å³ä½¿ææ¢è¡ï¼é£ä¹æ¢è¡åæåä¸ä¸ªæ°æ®åé¢ä»æéå·åéã
ä¹å°±æ¯è¯´ï¼ä»»æ两个æææ°æ®ä¹é´æä¸åªæä¸ä¸ªéå·åéã
é£ä¹å¯ä»¥å¾ªç¯è°ç¨
scanf("%d,",&v);
æ¥ä¾æ¬¡ææ°æ®è¯»å°vä¸å¹¶å¤çã
ä¾äºï¼æ件æå¤è¡ï¼æ¯è¡ä¾æ¬¡ä¸ºint, double,charçæ ¼å¼ï¼ä¸æ¯è¡ç»å°¾çæ°æ®åé¢æ²¡æéå·ã
å¯ä»¥å®ä¹
int a;
double b;
char c;
ç¶å循ç¯è°ç¨
scanf("%d,%lf,%c", &a,&b,&c);
åå¤ça,b,cçå¼ã
äºï¼å¾ªç¯è¯»å ¥å个å符ï¼åå¤çå符串ã
æ¤ç§æ¹æ³éç¨äºè¾å ¥çæ°æ®ä¸æ空ç½å符çæ åµï¼è¾ä¸ºå¤æãå ³é®ä»£ç å ¥ä¸ï¼
#include <stdio.h>逗号的数量不知道,起止都没有任何标记,scanf办不到
追答那么一次读入到一个大字符串中. , 比如说 str_all
然后
char list[500][20]; // 保存新字符串的位置
const char* first = atr_all ; // 复制的起点
const char* next = atr_all ; // 逗号的位置
for (int i = 0 ; *next != '\0'; ++next)
{
if (*next == ',') // 发现逗号
{
memcpy(list[i], first, next-first); // 复制内容到list
first = next+1; // 把复制的起点指向逗号之后的一个位置, 为下次复制做准备
++i; // list 下标+1
}
}
我学的是C++, 对C的文件读取不熟悉, 只能在算法上提供点帮助了