strcpy 함수를 사용해서 2차원 배열을 복사할수 잇나요?
SchokoHolic
strcpy 함수가 a에 있는 배열을 b로 복사하는거로 배웟던거 같은데..
배열변수가 1차원 형태일때는 되는거 같은데요
2차원 배열 상태에서는 어떻게 해야되는지 모르겠네요
char name[100][10] // 학생 100명의 이름을 저장하기 위해 선언
char swap[100][10] // 내림차순으로 정렬하기 위해 임시저장할 변수 선언
for(int i=0 ; i count ; i++)
{
for(int j=i+1 ; j count ; j++)
{
strcpy(swap[i],name[i]); // 이부분이 i행의 시작부분의 주소를 불러오는게 맞나요??
strcpy(name[i],name[j]);
strcpy(name[j],swap[i]);
}
}
도와주세요 ㅠㅠ
-
여신
strcpy 사용법은 맞아요.
-
동백
name[i]가 \asdf\라는 문자열이 저장된 메모리의 주소라 하고
name[j]가 \pqrs\라는 문자열이 저장된 메모리의 주소라 하면
name[i] name[j]는 \asdf\가 저장된 주소가 \pqrs\가 저장된 주소보다 더 크냐 (또는 name + i name + j)
strcmp( name[i] , name[j] ) 0 는 name[i]가 가르키는 문자열 \asdf\가 name[j]가 가르키는 문자열 \pqrs\ 보다 더 크냐. ( -
월식
strcmp는 두배열이 같은지 비교하는 함수 인거 아닌가요..?
정렬을 해야되서 크기를 비교해야될거 같은데... -
유진깡
name[i] name[j] 는 포인터 2개를 비교하는거라서 (주소값 2개 비교)
strcmp(name[i], name[j]) 0 를 쓰셔야 해요. -
한뎃집
if문을
안쪽 for문에 \t\t\tif(name[i]name[j])
이렇게 조건을 주고 참이면 strcpy문을 사용해서 바꾸는거 같은데..
빌드를 하면 이상한 문자가 막나오네요.. -
큰꽃늘
네 저렇게하면 i 번째와 j번째가 바뀌겠네요
If문만 추가하시면 내림차순 정렬하실수 있을듯 -
강남맨
아직 배우지않은 함수는 쓰면안되서요...
strcpy함수 로는 불가능한가요 -
가론
memcpy 를 사용하세요