c如何按行切割字元串
A. C語言中字元切割函數split的實現
#include<stdio.h>
#include<string.h>
//將抄str字元以spl分割襲,存於dst中,並返回子字元串數量
intsplit(chardst[][80],char*str,constchar*spl)
{
intn=0;
char*result=NULL;
result=strtok(str,spl);
while(result!=NULL)
{
strcpy(dst[n++],result);
result=strtok(NULL,spl);
}
returnn;
}
intmain()
{
charstr[]="whatisyouname?";
chardst[10][80];
intcnt=split(dst,str,"");
for(inti=0;i<cnt;i++)
puts(dst[i]);
return0;
}
B. c/cpp中如何分割字元串,類似於split的功能
c語言中 有切割字元串的函數啊!
strtok函數(const char *str, const char *ch)
第一個是字元串,第內二個是以那個字元做切容割。
例子:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[] = "123-sldkf-123ls-343434-dfjdlkfj-dflcmvn";
char *delim = "-";
char *p;
printf("%s ", strtok(s, delim));
while((p = strtok(NULL, delim))
printf("%s ", p);
printf("\n");
return 0;
}
char s[] = "dlkjf-sdlkfjsdf\lsdkljfl'sldkjf\sdkfjsdlf\lskdjfls";
如果想用-和\兩個符號切割的話
char *delim = "-\";
這樣就可以了
C. 用C語言分割字元串
char szPortsMessage[]="0,1,4,6,7;-1062708991|0,3,4,5,7;-1062708992|";
char delims_switchs[] = "|";
char *result_switchs = NULL;
result_switchs = strtok(szPortsMessage,delims_switchs);
while(result_switchs != NULL) {
printf( "result_switchs is \"%s\"\n",result_switchs);
char* tmp = result_switchs; ---------加一行,tmp=分割後的第一個字元串
result_switchs = strtok(NULL,delims_switchs); result_switchs 已經等於分割後的第二個字元串了
char swinfo[100];
strcpy(swinfo,tmp); ------------------換成tmp
char delims_switch[] = ";";
char *result_switch = NULL;
result_switch = strtok(swinfo,delims_switch);
while(result_switch != NULL) {
printf( "result_switch is \"%s\"\n",result_switch);
result_switch = strtok(NULL,delims_switch);
}
}
D. C語言如何以逗號分割字元串 就是用scanf輸入一行「1,2,3,4"把這四個數據存到數組該怎麼寫
int a[4];
scanf("%d,%d,%d,%d", &a[0], &a[1], &a[2], &a[3]);
E. C 中怎麼把字元串按固定長度分割
#include<stdio.h>
#include<string.h>
intmain(void)
{
chars[100]="1122334455667788 ";
charp[10][10];
char*q=s,tmp;
inti=0,len=strlen(s),intk=4;
while(strlen(q)>k)
{
tmp=q[k];
q[k]='