當前位置:首頁 » 編程語言 » c語言的切割

c語言的切割

發布時間: 2022-05-26 18:02:11

㈠ 關於c語言字元串中切割函數strtok的用法

strtok()函數並不像你想的那樣可以一次切割字串。需要多次循環,第二次時需要用 p = strtok(NULL, " "); 這樣的 形式。

void main()
{ char test1[] = "Hello C World";
char *p;
p = strtok(test1, " ");
while(p)
{
printf("%s\n", p);
p = strtok(NULL, " ");
}
return 0;
}
運行結果:
Hello
C
World

㈡ C語言怎麼把一串數字切割成幾個整數,例如輸入2016010906輸出2016-010-906

用sscanf,用%d讀取整數的時候指定讀幾位:
int a, b, c;
sscanf("2016010906", "%4d%3d%3d", &a, &b, &c);
printf("%04d-%03d-%03d\n", a, b, c);其中列印的%03d表示不夠3位就在前面補0。

㈢ C語言以逗號分割字元串

#include<iostream>

#include<vector>

#include<sstream>

usingnamespacestd;

intmain()

{

strings;

vector<int>v;

cin>>s;

//將讀入的字元串轉化成is流

istringstreamis(s);

intinter;

charch;

while(is>>inter)//只能讀出is流中的一個整形讀進inter

{

v.push_back(inter);

is>>ch;//然後讀一個字元型讀進ch

}

for(inti=0;i<v.size();i++)

cout<<v[i]<<"";

cout<<endl;

return0;

}

(3)c語言的切割擴展閱讀

C語言的字元串按照指定字元串分割操作

#include<stdio.h>

#pragmawarning(disable:4996)

#include<stdlib.h>

intmain()

{

charstr[]="我,是,中國,程序員";

char*ptr;

char*p;

printf("開始前:str=%s ",str);

printf("開始分割: ");

ptr=strtok(str,",");

while(ptr!=NULL){

printf("ptr=%s ",ptr);

ptr=strtok(NULL,",");

}

getchar();

}

㈣ 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;
}

㈤ C語言如何分割字元串

可以寫一個分割函數,用於分割指令,比如cat a.c最後會被分割成cat和a.c兩個字元串、mv a.c b.c最後會被分割成mv和a.c和b.c三個字元串。

參考代碼如下:

#include<stdio.h>
#include<string.h>
#defineMAX_LEN128
voidmain()
{
inti,length,ct=0,start=-1;
charinputBuffer[MAX_LEN],*args[MAX_LEN];
strcpy(inputBuffer,"mva.cb.c");
length=strlen(inputBuffer);
for(i=0;i<=length;i++){
switch(inputBuffer[i]){
case'':
case' ':/*argumentseparators*/
if(start!=-1){
args[ct]=&inputBuffer[start];/*setuppointer*/
ct++;
}
inputBuffer[i]='';/*addanullchar;makeaCstring*/
start=-1;
break;
case'':/*shouldbethefinalcharexamined*/
if(start!=-1){
args[ct]=&inputBuffer[start];
ct++;
}
inputBuffer[i]='';
args[ct]=NULL;/*nomoreargumentstothiscommand*/
break;
default:/*someothercharacter*/
if(start==-1)
start=i;
}
}
printf("分解之後的字元串為: ");
for(i=0;i<ct;i++)
printf("%s ",args[i]);
}

㈥ C語言怎麼把字元串按行分割

int split(char dst[][80], char* str, const char* spl)

{

int n = 0;

char *result = NULL;

result = strtok(str, spl);

while( result != NULL )

{

strcpy(dst[n++], result);

result = strtok(NULL, spl);

}

return n;

}

int _tmain(int argc, _TCHAR* argv[])

{

char str[] = "123,456 789,321";

char dst[10][80];

int cnt = split(dst, str, " ");

for (int i = 0; i < cnt; i++)

puts(dst[i]);

return 0;

}

主要是字元串分割函數strtok的使用

㈦ c語言如何分割字元串並將結果放入數組

如果是從輸入讀,那不用存字元串,直接存數組就好了
比如
scanf(「%d,%d....」,a,a+1,a+2...)
如果已經是字元串了,比如str,那麼用sscanf
比如sscanf(str,「%d,%d....」,a,a+1,a+2...)

㈧ c語言中 如何分割字元串

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;
}

㈨ C語言分割字元串

使用strtok函數即可實現分割字元串。

1、strtok函數:
原型:char *strtok(char s[], const char *delim);
功能:將一個字元串分解為一組字元串,s為要分解的字元串,delim為分隔符字元串;
說明:當strtok函數在參數s的字元串中發現參數delim中包含的分割字元時,則會將該字元改為 字元。在第一次調用時,strtok()必需給予參數s字元串,往後的調用則將參數s設置成NULL。每次調用成功則返回指向被分割出片段的指針;
頭文件:string.h;
返回值:從字元串s開頭開始的一個個被分割的字元串。分割結束時,返回NULL。所有delim中包含的字元都會被濾掉,並將被濾掉的地方設為一處分割的節點。
2、常式:

#include<stdio.h>
#include<string.h>
intmain(){
charinput[16]="abc,d,ef,g";//待分解字元串
char*delim=",";//分隔符字元串
char*p=strtok(input,delim);//第一次調用strtok
while(p!=NULL){//當返回值不為NULL時,繼續循環
printf("%s ",p);//輸出分解的字元串
p=strtok(NULL,delim);//繼續調用strtok,分解剩下的字元串
}
return0;
}

㈩ c語言數字切割

c語言拆分數運算
從鍵盤上輸入一個4位數的整數n,編寫程序將其拆分為兩個2位數的整數a和b,計算並輸出拆分後的兩個數的加、減、乘、除和求余運算的結果。例如n=-4321,設拆分後的兩個整數為a,b,則a=-43,b=-21。除法運算結果要求精確到小數點後2位,數據類型為float。求余和除法運算需要考慮除數為0的情況,即如果拆分後b=0,則輸出提示信息"Thesecondoperateriszero!"
輸入提示信息:"Pleaseinputn: "
輸入格式:"%d"
輸出格式:
拆分後的兩個整數的輸出格式:"%d,%d "
加法、減法、乘法的輸出格式:"sum=%d,sub=%d,multi=%d "
除法和求余的輸出格式:"dev=%.2f,mod=%d "
除數為0的提示信息:"Thesecondoperatoriszero! "

#include<stdio.h>

intmain(void)
{
intinput_number,separate_number_a,separate_number_b;

printf("Pleaseinput(4digit)Numbern: ");
scanf("%d",&input_number);
separate_number_b=input_number%100;
separate_number_a=input_number/100;
printf("Theseparatenumberare:%d,%d ",separate_number_a,separate_number_b);
printf("sum=%d,sub=%d,multi=%d ",separate_number_a+separate_number_b,separate_number_a-separate_number_b,separate_number_a*separate_number_b);

if(separate_number_b==0)
printf("Thesecondoperatoriszero! ");
else
printf("dev=%.2f,mod=%d ",(float)separate_number_a/separate_number_b,separate_number_a%separate_number_b);
return0;
}

熱點內容
比格雲伺服器好用不 發布:2025-02-12 21:23:00 瀏覽:219
砍價php 發布:2025-02-12 21:21:17 瀏覽:754
c語言函數返回值是數組 發布:2025-02-12 21:21:16 瀏覽:698
pow在c語言中什麼 發布:2025-02-12 21:07:24 瀏覽:320
php查詢mysql連接 發布:2025-02-12 21:05:45 瀏覽:632
linuxc當前時間 發布:2025-02-12 21:03:32 瀏覽:28
雲鎖神伺服器 發布:2025-02-12 21:03:29 瀏覽:487
c語言int和float 發布:2025-02-12 21:03:24 瀏覽:20
我的世界有什麼好玩的大伺服器 發布:2025-02-12 21:01:59 瀏覽:98
方舟手游如何解鎖自己的伺服器 發布:2025-02-12 20:54:09 瀏覽:657