Nếu dãy số lúc nào cũng 12 số thì : char a[100], b[100]; for(int i=0; i<n/2; i++) //n là số phần tử của chuỗi số. { a = c //c là mảng chứa dãy số trên (kiểu char) } //sau khi chạy đến đây i dừng lại ở giữa (như dãy số trên thì lúc này i = 6) for(int j=i; j<n; j++) { b[j] = c[j] } Hết. PS: Viết xong mới thấy bác là Lão Làng. Chắc phải siêu lắm, thôi lần sau em chả dám múa rìu qua mắt thợ nữa đâu
Mã: int i,j=0; for(i=0;i<n;i++) { if(i<n/2) a[i]=c[i]; else { b[j]=c[i]; j++; } } @thanhtung: chuỗi b của bạn sẽ bắt đầu từ element thứ 6 nếu in ra chắc sẽ thành #$!^@$001019
nếu lỡ dãy số này là string thì sao, câu hỏi bạn kia mơ hồ và mấy bạn trả lời cũng ko hợp lý lắm vì n ở đâu ra nhỉ theo mình chắc là đưa vào string hoặc long int rồi chia đôi chuỗi hoặc số ra (vậy có lẽ tổng quát hơn) còn nếu là dãy số thì đương nhiên n sẽ tồn tại và làm y như bạn trên
bạn chưa hiểu rồi ! tùy theo cách viết thôi. mình thì bổ sung chữa bài bạn thanhtung thôi, mà theo bài thanhtung thì nó là chuỗi rồi đó. và mình nghĩ chuỗi số ở đây dùng để tách chứ ko phải để tính toán nên dùng kiểu chuỗi là đúng rồi chứ đừng dùng kiểu số (int hay long int) vì đằng nào thì cũng phải biến nó thành chuỗi mới tách ... bạn ko biết trong C ko có kiểu string sao? string ở đây là mảng các kí tự mà thôi n thì khi viết bạn phải tự biết lấy n = strlen(char* str) chứ :)
uhm thì nếu là chuỗi thì cách bạn là ok nhưng nếu là longint thì có cách khác ^^ (dùng /, %) mà sao cũng được bạn ý cũng ko học chuyên lập trình chắc chỉ là xl chuỗi thôi hôm đọc bài này là khuya quá buồn ngủ nên nhầm 1 tí ^^ về chuỗi string ^^
Tách Chuỗi thì đơn giản thôi, trong C có sẵn thư viện string.h dùng để xử lí chuỗi : #include<string.h> #include<stdio.h> #include<conio.h> void main() { char s[255],s1[100]; gets(s);//Nhap chuoi s strcpy(s1,s+6);//copy từ vị trí kí tự thứ 6 trong chuỗi s vào chuỗi s1 s[6]='\0';//Cho kí tự thứ 6 bằng NULL tức là chuỗi s kết thúc tại vị trí s[5]. puts(s); printf("\n"); puts(s1); getch(); }
#include <string.h> #include <stdlib.h> main(){ const char* string= "067800001019"; char s1[10],s2[10]; strncpy(s1, string, 6); strncpy(s2, string+6, 6); printf("%s\n", s1); printf("%s\n", s2); return 0; }