C에서 문자열 배열에 새 요소를 추가하려면 어떻게해야합니까?C에서 문자열 배열에 요소를 추가하는 방법은 무엇입니까?
답변
배열을 확장하려면 메모리를 다시 할당해야합니다. realloc
을 확인하십시오.
문자열 인 경우 strcat()
(some docs) 만 사용하면됩니다. 메모리를 허용 한만큼만 확장 할 수 있다는 것을 조심하십시오. 다른 포스터가 말했듯이 realloc()
일 수도 있습니다.
배열 호출에 따라 다릅니다.
고정 길이 배열을 통계적으로 할당 한 경우 i- 번째 요소에 데이터를 복사 할 수 있습니다. 동적 배열을 사용한 경우
char foo[25][25];
strcpy(foo[1], "hello world"); /* "puts" hello world in the 2nd cell of the array */
먼저 여전히 공간이 있음을 보장해야 otherwize은 다음 항목을 같은 방법으로 넣어 메모리를 할당합니다.
'strdup (foo [1], "hello world");','foo [1]'은 항상 인덱스 1에 있어야합니까? 배열에 5 개의 요소가 있다고 가정하면'foo [6]'을 사용할 것입니까? thanks –
@James : '0'에서 '24'까지 요소를 수정할 수 있습니다. 그렇지 않으면 메모리의 잘못된 영역에 쓸 수 있습니다. 이로 인해 데이터가 손실되거나 프로그램이 중단 될 수 있습니다. 'foo [1]'은 두 번째 배열 요소 인 두 번째 문자열에 대한 포인터입니다. –
어디서 'strdup'을 얻고 있습니까? 그것은 표준 버전처럼 보이지 않습니다. – bstpierre
C의 문자열은 문자 배열로 구성됩니다. printf 호출을 사용하여 문자열을 올바르게 인쇄하려면 NULL 문자 (\ 0)로 끝나야합니다.
새 요소를 추가하려면. 문자의 끝 부분에 NULL 문자로 이동 & 새 문자로 바꾸고 그 뒤에 NULL을 넣습니다. 이것은 새로운 문자에 충분한 공간이 이미 있다고 가정합니다.
char str[100];
char new_char = 'a';
int i = 0;
...
// adds new_char to existing string:
while(str[i] != '\0')
{
++i;
}
str[i++] = new_char;
str[i] = '\0';
그 코드가 어떻게 작동 할 수 있는지 이해할 수 없다. 코드는 마지막 요소 앞에 배열/문자열을 null로 끝내는 것처럼 보인다. –
컴파일러에서 시도해보십시오 :이 문맥에서'str [i ++] = new_char;'는'str [i] = new_char; 나는 의심의 여지가 있다면 http://stackoverflow.com/q/4865599/191776을 참조하십시오. –
- 1. objective-c에서 for 루프를 사용하여 배열에 요소를 추가하는 방법은 무엇입니까?
- 2. Objective-C에서 배열에 변수를 추가하는 방법은 무엇입니까?
- 3. Powershell에서 배열에 요소를 추가하는 방법은 무엇입니까?
- 4. 배열에 정수를 추가하는 방법은 무엇입니까?
- 5. 배열에 html_entity_decode를 추가하는 방법은 무엇입니까?
- 6. 한 배열의 요소를 다른 배열에 추가하는 방법은 무엇입니까?
- 7. Objective-C에 배열에 변수를 추가하는 방법은 무엇입니까?
- 8. PHP에서 배열에 SQL 요소를 추가하는 방법
- 9. 문자열 앞에 빼기 기호를 추가하는 방법은 무엇입니까? ,
- 10. AS3 : 배열에 링키지를 추가하는 방법은 무엇입니까?
- 11. C의 구조체 배열에 struct를 추가하는 방법은 무엇입니까?
- 12. 다차원 배열에 값을 추가하는 방법은 무엇입니까?
- 13. JOptionpanes를 통해 배열에 추가하는 방법은 무엇입니까?
- 14. 방문 페이지 URL을 세션 배열에 추가하는 방법은 무엇입니까?
- 15. Prototype을 사용하여 '본문'에 요소를 추가하는 방법은 무엇입니까?
- 16. Scheme에서 목록의 요소를 만들고 추가하는 방법은 무엇입니까?
- 17. jQuery - DOM에 요소를 동적으로 추가하는 방법은 무엇입니까?
- 18. javascript에서 jsf 구성 요소를 추가하는 방법은 무엇입니까?
- 19. 스크롤하는 아이폰에서 tableview에 요소를 추가하는 방법은 무엇입니까?
- 20. jQuery에서 효율적으로 요소를 많이 추가하는 방법은 무엇입니까?
- 21. C에서 문자열 끝을 비교하는 방법은 무엇입니까?
- 22. c에서 문자 배열을 문자열로 변환하여 문자열 연산을 수행하는 방법은 무엇입니까?
- 23. 문자열 변수에 저장된 요소를 선택하는 방법은 무엇입니까?
- 24. 배열의 다음 여유 공간에 요소를 추가하는 방법은 무엇입니까?
- 25. 배열에 요소를 추가하려면 어떻게합니까?
- 26. 객체 배열에 요소를 추가하십시오.
- 27. int 배열에 문자열 매핑 - Java
- 28. XML 구문 분석에서 자식 요소를 찾을 수없는 경우 배열에 기본값을 추가하는 방법은 무엇입니까?
- 29. 문자열 파싱 및 배열에 넣기
- 30. 두 배열에서 누락 된 요소를 첫 번째 배열에 추가하는 방법
어레이가 이미 꽉 찼습니까? 배열의 크기를 늘리려고하십니까? – Davidann
이것 좀 봐, http://stackoverflow.com/questions/4694401/how-to-replicate-vector-in-c/4694762#4694762 –
그래서 문자열의 배열, 또는 문자열 (문자 배열)? 비슷하지만 두 경우 모두 함정이 있습니다. – PeterK