Sửa giúp mình hàm lật tên

Mình muốn lật tên lại nhưng không hiểu tại sao lại có dấu ‘(’ đằng trước ???

do kí tự kết thúc chuỗi đó bạn.
bạn làm sao để cái đệ quy nó bỏ vòng cuối là ổn.
nãy giờ mình nghĩ ko ra. :frowning:

1 Like

kí tự kết thúc chuỗi là /0 mà ??? tại sao lại trở thành (

máy mình thì nó hiện @.
nói chung mình chắc chắn đó là kí tự kết thúc chuỗi

mình thay đổi tam1[30] thành tam1[33] thì bình thường ??? ai giải thích giùm mình với

Copy code lên đi @Rok_Hoang ơi, nhìn hình lười biếng quá :smiley:

#include <stdio.h>
#include <math.h>
#include <limits.h>
#include <string.h>
void    lat(char *tam,char *tam1)
{
    if (tam!=NULL)
    {
        lat(strtok(NULL," "),tam1);
        strcat(tam1,tam);
        strcat(tam1," ");
    }
}
int main()
{
    char *tam,tam1[34];
    char a[]="Vu Ngoc Minh Hoang";
    tam=strtok(a," ");
    lat(tam,tam1);
    printf("%s",tam1);
    getch();
    return 0;
}

đây anh ơi

Anh Đạt cho em hỏi này cái… kiểu struct ấy mình có thể chuyền cho nhau được không… ví dụ em có struct

struct	student
{
	char	name[30];
	float	score;
};

thì khi em khai báo 2 biến A và B kiểu struct,liệu em có thể chuyền dữ liệu từ B sang A bằng phép gán A=B được không anh ?
còn khi mình chuyền một biến kiểu cấu trúc vào hàm thì chuyền địa chỉ đúng không anh?

Code có vẻ vui,
Nhưng lỗi đơn giản chỉ là chưa set giá trị ban đầu cho chuỗi kết quả,
Khi ta khai báo char tam1[34] thì chương trình sẽ cấp phát cho ta một vùng nhớ chưa sử dụng bất kì có kích thuớc 34 byte, như vậy tam1 vẫn có giá trị rác tồn tại sẵn trong bộ nhớ, như vậy lúc strcat ( tam1, abcd) thì nó sẽ là rác nối với abcd,
như vậy để tránh hiện tượng này thì khai báo char tam1[34] = {0}; Tức là cho chuỗi ban đầu là rỗng trước

2 Likes

struct có thể gán bằng với các kiểu dữ liệu cơ bản thôi
còn các kiểu phức tạp mình tự định nghĩa bằng operator =

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?