--- id: cpp-strings-access title: "C++ Access Strings" category: "Programming_Language" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["string index", "at() function", "C++ 문자열 접근"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.86 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["cpp", "programming-language", "w3schools", "strings", "indexing"] raw_sources: ["https://www.w3schools.com/cpp/cpp_strings_access.asp"] applied_in: [] github_commit: "" --- # [[CPP Access Strings]] ## 🎯 한 줄 통찰 (One-line insight) `myString.length() - 1` is the standard idiom for reaching the LAST character of a string of unknown length — since indexes are zero-based, the final valid index is always one less than the total length, and this exact formula reappears identically whether accessed via bracket indexing (`myString[myString.length() - 1]`) or the `.at()` function, showing the offset logic is independent of which access syntax is used. [S1] ## 🧠 핵심 개념 (Core concepts) - **Bracket indexing (`str[i]`)** — zero-based access to a string's characters, same convention as arrays. [S1] - **Last-character idiom** — `str[str.length() - 1]` reaches the final character regardless of the string's actual length. [S1] - **Mutable characters via index** — `myString[0] = 'J';` changes a specific character in place, using single quotes for the new value. [S1] - **`.at(index)` function** — an alternative to bracket indexing, from the `` library, usable both for reading AND assigning (`myString.at(0) = 'J';`). [S1] ## 📖 세부 내용 (Details) - First and second character access: `string myString = "Hello"; cout << myString[0]; // H cout << myString[1]; // e`. [S1] - Last-character idiom: `cout << myString[myString.length() - 1]; // o`. [S1] - Mutating a character by index: `myString[0] = 'J'; cout << myString; // Jello`. [S1] - Using `.at()` for both reading and writing: `cout << myString.at(0); myString.at(0) = 'J'; cout << myString; // Jello`. [S1] ## ⚖️ 모순 및 업데이트 (Contradictions & updates) - 현재까지 발견된 모순 사항 없음 (No contradictions found in available sources). ## 🛠️ 적용 사례 (Applied in summary) 현재 발견된 실제 적용 사례가 없습니다 — length()-1 공식으로 마지막 문자에 접근하는 패턴이 문자열 길이를 미리 알 수 없는 실전 상황에서 표준적으로 쓰인다. [S1] ## 💻 코드 패턴 (Code patterns) Reaching the last character of a string regardless of its length (C++): ```cpp string myString = "Hello"; cout << myString[myString.length() - 1]; // Outputs 'o' ``` ## ✅ 검증 상태 및 신뢰도 - **상태:** draft - **검증 단계:** conceptual - **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body) - **신뢰 점수:** 0.86 - **중복 검사 결과:** 신규 생성 (New discovery) ## 🔗 지식 그래프 (Knowledge Graph) - **상위/루트:** [[C++ Tutorial]] - **관련 개념:** [[CPP Strings]], [[CPP Strings Concat]], [[CPP Strings Length]] - **참조 맥락:** 문자열 접근 — 문자열 연결(Strings Concat) 챕터로 이어짐. ## 📚 출처 (Sources) - [S1] W3Schools — C++ Access Strings — https://www.w3schools.com/cpp/cpp_strings_access.asp ## 📝 변경 이력 (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "C++ Access Strings" page (Astra wiki-curation, P-Reinforce v3.1 format).