-
02-05-2014, 05:16 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Lỗi hàm strcat - không hiểu sai ở đâu @@
Em có đoạn code sau :
Mã:#include<stdio.h> #include<conio.h> #include<string.h> #include<ctype.h> #include<stdlib.h> void tach_ten(char* sinhvien,char** name); int main() { char* s1,*s2; char s[30]; char* name; int i; printf("nhap vao sinh vien 1 :"); gets(s); s1 = (char*)malloc((strlen(s)+1)*sizeof(char)); strcpy(s1,s); printf("nhap vao sinh vien 2 :"); gets(s); s2 = (char*)malloc((strlen(s)+1)*sizeof(char)); strcpy(s2,s); printf("sinh vien 1:"); puts(s1); printf("sinh vien 2:"); puts(s2); tach_ten(s1,&name); printf("ten la :");puts(name); strcat(name,s1); puts(s1); getch(); } void tach_ten(char* s,char** name) { int k; int l = strlen(s); for(k=l-1;k>0;k--) if(s[k]==' ') break; *name = s+k+1; }
em test hàm tach_ten thì tách được tên rồi .nhưng đến khi dùng hàm strcat(name,s1) để ghép s1 vào sau cái tên kia ( phục vụ cho sắp xếp họ tên kiểu VN). thì toàn bị lỗi dừng chương trình mà chả hiểu lỗi ở đâu [IMG]images/smilies/17.gif[/IMG][IMG]images/smilies/17.gif[/IMG][IMG]images/smilies/17.gif[/IMG] mong mọi người kiểm tra giúp em ạ .View more random threads:
- Phép tính +-*/ không sử dụng thư viện math.h
- xóa chữ số
- Giúp mình sửa lỗi trên vs2012
- cau trúc lăp rẽ nhánh
- tối ưu mã nguồn C. Giúp mình?
- Tìm số lun xuất hiện trong mỗi hàng của mảng 2chiều
- Gấp!!!Mong được giúp đở về vấn đề về tách DSLK Đơn
- Tính tổng các số lớn nhất ở vị trí chẳn và lẻ, sắp xếp các vị trí lẻ giảm dần
- Dòng lệnh khó hiểu
- Sinh viên - Bài tập thừa kế
-
03-05-2014, 11:49 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi huycan
-
03-05-2014, 03:50 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bạn chưa cấp phát bộ nhớ cho name thì làm sao mà strcat được?
tach_ten chỉ là cho name trỏ vào vùng nhớ của s1 mà thôi...
mình sửa lại phần cuối tí xíu:
Mã:tach_ten(s1,&name); printf("ten la :");puts(name); strcpy(s, name); name = (char*)malloc((strlen(s1)+1 + strlen(s))*sizeof(char)); strcpy(name, s); strcat(name,s1); puts(name); free(s1); free(s2); free(name);
-
04-05-2014, 09:21 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
đúng vậy. sau hàm tach_ten thì con trỏ name chỉ vào 1 vị trí của s1 là từ cuối cùng của s1.
Bước 1: Xem nhãn áo quần để biết cách chăm sóc vải hợp Dù hồ hết vải đều có thể giặt bằng máy, bạn vẫn nên kiểm tra nhãn chỉ dẫn coi ngó, đặc biệt là với đồ len và đồ mỏng. Một số...
Các bước dùng máy giặt đúng cách,...