Null-terminated string
ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ನಲ್ಲಿ, ಶೂನ್ಯ-ಕೊನೆಗೊಂಡ ಸ್ಟ್ರಿಂಗ್ ಎಂಬುದು ಅಕ್ಷರಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ರಚನೆಯಾಗಿ ಸಂಗ್ರಹಿಸಲಾದ ಮತ್ತು ಶೂನ್ಯ ಅಕ್ಷರದೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುವ ಅಕ್ಷರದ ಸ್ಟ್ರಿಂಗ್ ಆಗಿದೆ (ಶೂನ್ಯದ ಆಂತರಿಕ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುವ ಅಕ್ಷರವನ್ನು ಈ ಲೇಖನದಲ್ಲಿ "ಎನ್ ಯುಎಲ್" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇದು ಗ್ಲಿಫ್ ಶೂನ್ಯದಂತೆಯೇ ಅಲ್ಲ). ಪರ್ಯಾಯ ಹೆಸರುಗಳೆಂದರೆ ಸಿ ಸ್ಟ್ರಿಂಗ್, ಇದು ಸಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ ಮತ್ತು ಎಎಸ್ಸಿಐಐಝಡ್ (ಆದಾಗ್ಯೂ ಸಿ ಎಎಸ್ಸಿಐಐ ಹೊರತುಪಡಿಸಿ ಎನ್ಕೋಡಿಂಗ್ಗಳನ್ನು ಬಳಸಬಹುದು). (ಮೊದಲ) ಎನ್. ಯು. ಎಲ್. ಅನ್ನು ಹುಡುಕುವ ಮೂಲಕ ದಾರದ ಉದ್ದವನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗುತ್ತದೆ. ಸ್ಟ್ರಿಂಗ್ ಉದ್ದಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ ಇದು O (n) (ರೇಖೀಯ ಸಮಯ) ತೆಗೆದುಕೊಳ್ಳುವುದರಿಂದ ಇದು ನಿಧಾನವಾಗಿರಬಹುದು. ಇದರರ್ಥ ಒಂದು ಸ್ಟ್ರಿಂಗ್ ಎನ್. ಯು. ಎಲ್ ಅನ್ನು ಹೊಂದಿರಬಾರದು (ಮೆಮೊರಿಯಲ್ಲಿ ಎನ್. ಯು. ಎಲ್ ಇದೆ, ಆದರೆ ಅದು ಕೊನೆಯ ಅಕ್ಷರದ ನಂತರ ಇರುತ್ತದೆ, ಸ್ಟ್ರಿಂಗ್ ಅಲ್ಲ). ಪಿಡಿಪಿ-11 ಅಸೆಂಬ್ಲಿ ಭಾಷೆಗಳ. ಎ. ಎಸ್. ಸಿ. ಐ. ಜೆಡ್ ನಿರ್ದೇಶನ ಮತ್ತು ಪಿಡಿಪಿ-10 ಗಾಗಿ ಮ್ಯಾಕ್ರೋ-10 ಮ್ಯಾಕ್ರೋ ಅಸೆಂಬ್ಲಿ ಭಾಷೆಯ ಎ. ಎಸ್. ಸಿ. ಐ. ಜೆಡ್ ನಿರ್ದೇಶನದಿಂದ ಇತಿಹಾಸದ ಶೂನ್ಯ-ಅಂತ್ಯದ ತಂತಿಗಳನ್ನು ತಯಾರಿಸಲಾಯಿತು. ಇವು ಸಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬೆಳವಣಿಗೆಗೆ ಮುಂಚೆಯೇ ಇದ್ದವು, ಆದರೆ ಇತರ ರೀತಿಯ ತಂತಿಗಳನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸಲಾಗುತ್ತಿತ್ತು. ಸಿ (ಮತ್ತು ಅದನ್ನು ಪಡೆದ ಭಾಷೆಗಳು) ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಸಮಯದಲ್ಲಿ, ಮೆಮೊರಿಯು ಅತ್ಯಂತ ಸೀಮಿತವಾಗಿತ್ತು, ಆದ್ದರಿಂದ ಸ್ಟ್ರಿಂಗ್ನ ಉದ್ದವನ್ನು ಸಂಗ್ರಹಿಸಲು ಕೇವಲ ಒಂದು ಬೈಟ್ ಓವರ್ಹೆಡ್ ಅನ್ನು ಬಳಸುವುದು ಆಕರ್ಷಕವಾಗಿತ್ತು. ಸಾಮಾನ್ಯವಾಗಿ "ಪ್ಯಾಸ್ಕಲ್ ಸ್ಟ್ರಿಂಗ್" ಎಂದು ಕರೆಯಲಾಗುವ ಆ ಕಾಲದ ಏಕೈಕ ಜನಪ್ರಿಯ ಪರ್ಯಾಯವು (ಹೆಚ್ಚು ಆಧುನಿಕ ಪದವೆಂದರೆ "ಉದ್ದ-ಪೂರ್ವನಿರ್ಧರಿತ"), ಸ್ಟ್ರಿಂಗ್ನ ಉದ್ದವನ್ನು ಸಂಗ್ರಹಿಸಲು ಪ್ರಮುಖ ಬೈಟ್ ಅನ್ನು ಬಳಸಿತು. ಇದು ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಎನ್ಯುಎಲ್ ಅನ್ನು ಹೊಂದಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ ಮತ್ತು ಉದ್ದವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಕೇವಲ ಒಂದು ಮೆಮೊರಿ ಪ್ರವೇಶ (ಒ (1) (ಸ್ಥಿರ) ಸಮಯ) ಬೇಕಾಗುತ್ತದೆ, ಆದರೆ ಸ್ಟ್ರಿಂಗ್ ಉದ್ದವನ್ನು 255 ಅಕ್ಷರಗಳಿಗೆ ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ. ಸಿ ವಿನ್ಯಾಸಕ ಡೆನ್ನಿಸ್ ರಿಚೀ ತಂತಿಯ ಉದ್ದದ ಮೇಲಿನ ಮಿತಿಯನ್ನು ತಪ್ಪಿಸಲು ಶೂನ್ಯ-ಅಂತ್ಯದ ಸಂಪ್ರದಾಯವನ್ನು ಅನುಸರಿಸಲು ನಿರ್ಧರಿಸಿದರು ಮತ್ತು ಎಣಿಕೆ ನಿರ್ವಹಿಸುವುದು ಅವರ ಅನುಭವದಲ್ಲಿ, ಟರ್ಮಿನೇಟರ್ ಅನ್ನು ಬಳಸುವುದಕ್ಕಿಂತ ಕಡಿಮೆ ಅನುಕೂಲಕರವೆಂದು ತೋರುತ್ತದೆ. ಇದು ಸಿಪಿಯು ಇನ್ಸ್ಟ್ರಕ್ಷನ್ ಸೆಟ್ ವಿನ್ಯಾಸದ ಮೇಲೆ ಸ್ವಲ್ಪ ಪ್ರಭಾವ ಬೀರಿತು. 1970 ಮತ್ತು 1980ರ ದಶಕಗಳಲ್ಲಿ ಜಿಲಾಗ್ Z80 ಮತ್ತು DEC VAXನಂತಹ ಕೆಲವು CPUಗಳು ಉದ್ದ-ಪೂರ್ವನಿರ್ಧರಿತ ತಂತಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮೀಸಲಾದ ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿದ್ದವು. ಆದಾಗ್ಯೂ, ಶೂನ್ಯ-ಕೊನೆಗೊಂಡ ಸ್ಟ್ರಿಂಗ್ ಎಳೆತವನ್ನು ಪಡೆಯುತ್ತಿದ್ದಂತೆ, ಸಿಪಿಯು ವಿನ್ಯಾಸಕರು ಅದನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲು ಪ್ರಾರಂಭಿಸಿದರು, ಉದಾಹರಣೆಗೆ 1992 ರಲ್ಲಿ ಇಎಸ್/9000 520 ಗೆ "ಲಾಜಿಕಲ್ ಸ್ಟ್ರಿಂಗ್ ಅಸಿಸ್ಟ್" ಸೂಚನೆಗಳನ್ನು ಮತ್ತು 2015 ರಲ್ಲಿ ಐಬಿಎಂ ಝಡ್ 13 ಗೆ ವೆಕ್ಟರ್ ಸ್ಟ್ರಿಂಗ್ ಸೂಚನೆಗಳನ್ನು ಸೇರಿಸುವ ಐಬಿಎಂನ ನಿರ್ಧಾರದಲ್ಲಿ ಕಂಡುಬರುತ್ತದೆ. ಫ್ರೀಬಿಎಸ್ಡಿ ಡೆವಲಪರ್ ಪೌಲ್-ಹೆನ್ನಿಂಗ್ ಕ್ಯಾಂಪ್, ಎಸಿಎಂ ಕ್ಯೂಯಲ್ಲಿ ಬರೆಯುತ್ತಾ, 2-ಬೈಟ್ (ಒನ್-ಬೈಟ್ ಅಲ್ಲ) ಉದ್ದದ ಮೇಲೆ ಶೂನ್ಯ-ಕೊನೆಗೊಂಡ ತಂತಿಗಳ ವಿಜಯವನ್ನು "ಅತ್ಯಂತ ದುಬಾರಿ ಒನ್-ಬೈಟ್ ತಪ್ಪು" ಎಂದು ಉಲ್ಲೇಖಿಸಿದ್ದಾರೆ. ಮಿತಿಗಳು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸರಳವಾಗಿದ್ದರೂ, ಈ ಪ್ರಾತಿನಿಧ್ಯವು ದೋಷಗಳು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಸಮಸ್ಯೆಗಳಿಗೆ ಒಳಗಾಗುತ್ತದೆ. ಶೂನ್ಯ-ಅಂತ್ಯವು ಐತಿಹಾಸಿಕವಾಗಿ ಭದ್ರತಾ ಸಮಸ್ಯೆಗಳನ್ನು ಸೃಷ್ಟಿಸಿದೆ. ತಂತಿಯ ಮಧ್ಯದಲ್ಲಿ ಸೇರಿಸಲಾದ ಎನ್. ಯು. ಎಲ್. ಅದನ್ನು ಅನಿರೀಕ್ಷಿತವಾಗಿ ಮೊಟಕುಗೊಳಿಸುತ್ತದೆ. ಒಂದು ಸಾಮಾನ್ಯ ದೋಷವೆಂದರೆ ಎನ್. ಯು. ಎಲ್. ಗೆ ಹೆಚ್ಚುವರಿ ಜಾಗವನ್ನು ನಿಗದಿಪಡಿಸದಿರುವುದು, ಆದ್ದರಿಂದ ಅದನ್ನು ಪಕ್ಕದ ಮೆಮೊರಿಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ. ಎರಡನೆಯದು ಎನ್. ಯು. ಎಲ್ ಅನ್ನು ಬರೆಯದಿರುವುದು, ಇದು ಪರೀಕ್ಷೆಯ ಸಮಯದಲ್ಲಿ ಹೆಚ್ಚಾಗಿ ಪತ್ತೆಯಾಗಿರಲಿಲ್ಲ ಏಕೆಂದರೆ ಮೆಮೊರಿಯ ಬ್ಲಾಕ್ ಈಗಾಗಲೇ ಶೂನ್ಯಗಳನ್ನು ಹೊಂದಿತ್ತು. ಉದ್ದವನ್ನು ಕಂಡುಹಿಡಿಯುವ ವೆಚ್ಚದಿಂದಾಗಿ, ಅನೇಕ ಪ್ರೋಗ್ರಾಂಗಳು ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಸ್ಥಿರ-ಗಾತ್ರದ ಬಫರ್ಗೆ ನಕಲಿಸುವ ಮೊದಲು ತಲೆಕೆಡಿಸಿಕೊಳ್ಳಲಿಲ್ಲ, ಇದು ತುಂಬಾ ಉದ್ದವಾಗಿದ್ದರೆ ಬಫರ್ ಓವರ್ಫ್ಲೋಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಶೂನ್ಯವನ್ನು ಸಂಗ್ರಹಿಸಲು ಅಸಮರ್ಥತೆ ಎಂದರೆ ಪಠ್ಯ ಮತ್ತು ಬೈನರಿ ಡೇಟಾವನ್ನು ವಿಭಿನ್ನವಾಗಿ ಇರಿಸಬೇಕಾಗುತ್ತದೆ ಮತ್ತು ವಿಭಿನ್ನ ಕಾರ್ಯಗಳಿಂದ ನಿರ್ವಹಿಸಬೇಕಾಗುತ್ತದೆ (ಎರಡನೆಯದರೊಂದಿಗೆ ಡೇಟಾದ ಉದ್ದವನ್ನು ಸಹ ಪೂರೈಸಬೇಕಾಗುತ್ತದೆ). ಇದು ತಪ್ಪು ಕಾರ್ಯವನ್ನು ಬಳಸಿದಾಗ ಕೋಡ್ ರಿಡೆಂಡೆನ್ಸಿ ಮತ್ತು ದೋಷಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು. ಉದ್ದವನ್ನು ಕಂಡುಹಿಡಿಯುವಲ್ಲಿನ ವೇಗದ ಸಮಸ್ಯೆಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ಟ್ರಾಲ್ಸಿಪಿಯಲ್ಲಿನಂತಹ ಓ (ಎನ್) ಎಂಬ ಮತ್ತೊಂದು ಕಾರ್ಯಾಚರಣೆಯೊಂದಿಗೆ ಸಂಯೋಜಿಸುವ ಮೂಲಕ ತಗ್ಗಿಸಬಹುದು. ಆದಾಗ್ಯೂ, ಇದು ಯಾವಾಗಲೂ ಅಂತರ್ಬೋಧೆಯ ಎ. ಪಿ. ಐ. ಗೆ ಕಾರಣವಾಗುವುದಿಲ್ಲ. ಅಕ್ಷರ ಎನ್ಕೋಡಿಂಗ್ಗಳು ಶೂನ್ಯ-ಕೊನೆಗೊಂಡ ಸ್ಟ್ರಿಂಗ್ಗಳಿಗೆ ಎನ್ಕೋಡಿಂಗ್ ಎಲ್ಲಿಯೂ ಶೂನ್ಯ ಬೈಟ್ (0x00) ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ; ಆದ್ದರಿಂದ ಸಾಧ್ಯವಿರುವ ಎಲ್ಲಾ ಎಎಸ್ಸಿಐಐ ಅಥವಾ ಯುಟಿಎಫ್-8 ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಆದಾಗ್ಯೂ, ಎ. ಎಸ್. ಸಿ. ಐ. ಐ. ಅಥವಾ ಯು. ಟಿ. ಎಫ್-8ರ ಉಪವಿಭಾಗವನ್ನು-ಎನ್. ಯು. ಎಲ್. ಅನ್ನು ಹೊರತುಪಡಿಸಿ ಪ್ರತಿಯೊಂದು ಅಕ್ಷರವನ್ನು-ಶೂನ್ಯ-ಮುಕ್ತ ತಂತಿಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸುವುದು ಸಾಮಾನ್ಯವಾಗಿದೆ. ಕೆಲವು ವ್ಯವಸ್ಥೆಗಳು "ಮಾರ್ಪಡಿಸಿದ ಯುಟಿಎಫ್-8" ಅನ್ನು ಬಳಸುತ್ತವೆ, ಇದು ಎನ್ಯುಎಲ್ ಅನ್ನು ಎರಡು ಶೂನ್ಯವಲ್ಲದ ಬೈಟ್ಗಳಾಗಿ (0xC0,0x80) ಎನ್ಕೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಹೀಗಾಗಿ ಎಲ್ಲಾ ಸಂಭಾವ್ಯ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಯುಟಿಎಫ್-8 ಮಾನದಂಡವು ಇದನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಇದು ದೀರ್ಘಾವಧಿಯ ಎನ್ಕೋಡಿಂಗ್ ಆಗಿದೆ, ಮತ್ತು ಇದನ್ನು ಭದ್ರತಾ ಅಪಾಯವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಕೆಲವು ಇತರ ಬೈಟ್ಗಳನ್ನು ಸ್ಟ್ರಿಂಗ್ ಅಂತ್ಯವಾಗಿ ಬಳಸಬಹುದು, ಉದಾಹರಣೆಗೆ 0xFE ಅಥವಾ 0xFF, ಇವುಗಳನ್ನು UTF-8ರಲ್ಲಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಯುಟಿಎಫ್-16 2-ಬೈಟ್ ಪೂರ್ಣಾಂಕಗಳನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು ಎರಡೂ ಬೈಟ್ಗಳು ಶೂನ್ಯವಾಗಿರಬಹುದು (ಮತ್ತು ವಾಸ್ತವವಾಗಿ ಪ್ರತಿ ಇತರ ಬೈಟ್, ಎಎಸ್ಸಿಐಐ ಪಠ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸುವಾಗ), ಇದನ್ನು ಶೂನ್ಯ-ಕೊನೆಗೊಂಡ ಬೈಟ್ ಸ್ಟ್ರಿಂಗ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುವುದಿಲ್ಲ. ಆದಾಗ್ಯೂ, ಕೆಲವು ಭಾಷೆಗಳು 16-ಬಿಟ್ ಯುಟಿಎಫ್-16 ಅಕ್ಷರಗಳ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತವೆ, ಇದನ್ನು 16-ಬಿಟ್ ಎನ್ಯುಎಲ್ (0x0000) ನಿಂದ ಕೊನೆಗೊಳಿಸಲಾಗುತ್ತದೆ. ಸುಧಾರಣೆಗಳು ಸಿ ಸ್ಟ್ರಿಂಗ್ ನಿರ್ವಹಣೆಯನ್ನು ಕಡಿಮೆ ದೋಷ ಪೀಡಿತವಾಗಿಸಲು ಅನೇಕ ಪ್ರಯತ್ನಗಳನ್ನು ಮಾಡಲಾಗಿದೆ. ಒಂದು ಕಾರ್ಯತಂತ್ರವೆಂದರೆ ಸ್ಟ್ರಾಡಪ್ ಮತ್ತು ಸ್ಟ್ರಾಎಲ್ಸಿಪಿಯಂತಹ ಸುರಕ್ಷಿತ ಕಾರ್ಯಗಳನ್ನು ಸೇರಿಸುವುದು, ಆದರೆ ಗೆಟ್ಸ್ನಂತಹ ಅಸುರಕ್ಷಿತ ಕಾರ್ಯಗಳ ಬಳಕೆಯನ್ನು ಅಸಮ್ಮತಿಗೊಳಿಸುವುದು. ಸುರಕ್ಷಿತ ಕರೆಗಳನ್ನು ಮಾತ್ರ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಸಿ ಸ್ಟ್ರಿಂಗ್ಗಳ ಸುತ್ತಲೂ ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ರೇಪರ್ ಅನ್ನು ಸೇರಿಸುವುದು ಇನ್ನೊಂದು. ಆದಾಗ್ಯೂ, ಅಸುರಕ್ಷಿತ ಕಾರ್ಯಗಳನ್ನು ಹೇಗಾದರೂ ಕರೆಯಲು ಸಾಧ್ಯವಿದೆ. ಹೆಚ್ಚಿನ ಆಧುನಿಕ ಗ್ರಂಥಾಲಯಗಳು ಸಿ ತಂತಿಗಳನ್ನು 32-ಬಿಟ್ ಅಥವಾ ದೊಡ್ಡ ಉದ್ದದ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿರುವ ರಚನೆಯೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತವೆ (ಉದ್ದ-ಪೂರ್ವನಿರ್ಧರಿತ ತಂತಿಗಳಿಗೆ ಹಿಂದೆಂದಿಗಿಂತಲೂ ಹೆಚ್ಚು), ಮತ್ತು ಆಗಾಗ್ಗೆ ಮತ್ತೊಂದು ಪಾಯಿಂಟರ್, ಉಲ್ಲೇಖ ಎಣಿಕೆ ಮತ್ತು ಎನ್. ಯು. ಎಲ್ ಅನ್ನು ಸಹ ಸೇರಿಸುತ್ತವೆ. ಮೆಮೊರಿಯು ಈಗ ತುಂಬಾ ದೊಡ್ಡದಾಗಿದೆ, ಅಂದರೆ ಪ್ರತಿ ಸ್ಟ್ರಿಂಗ್ಗೆ 3 (ಅಥವಾ 16, ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚು) ಬೈಟ್ಗಳನ್ನು ಸೇರಿಸುವುದು ನಿಜವಾದ ಸಮಸ್ಯೆಯಾಗಿದ್ದರೆ, ಸಾಫ್ಟ್ವೇರ್ ಅನೇಕ ಸಣ್ಣ ಸ್ಟ್ರಿಂಗ್ಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸಬೇಕಾಗುತ್ತದೆ, ಬೇರೆ ಕೆಲವು ಶೇಖರಣಾ ವಿಧಾನವು ಇನ್ನೂ ಹೆಚ್ಚಿನ ಮೆಮೊರಿಯನ್ನು ಉಳಿಸುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಹ್ಯಾಶ್ ಟೇಬಲ್ ಕಡಿಮೆ ಮೆಮೊರಿಯನ್ನು ಬಳಸುವಷ್ಟು ಅನೇಕ ನಕಲುಗಳು ಇರಬಹುದು). ಉದಾಹರಣೆಗಳಲ್ಲಿ ಸಿ + + ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಟೆಂಪ್ಲೇಟ್ ಲೈಬ್ರರಿ ಎಸ್ಟಿಡಿಃ ಸ್ಟ್ರಿಂಗ್, ಕ್ಯೂಟಿ ಕ್ಯೂಸ್ಟ್ರಿಂಗ್, ಎಂಎಫ್ಸಿ ಸಿಎಸ್ಟ್ರಿಂಗ್ ಮತ್ತು ಕೋರ್ ಫೌಂಡೇಶನ್ನಿಂದ ಸಿ-ಆಧಾರಿತ ಅನುಷ್ಠಾನ ಸಿಎಫ್ಸ್ಟ್ರಿಂಗ್ ಮತ್ತು ಫೌಂಡೇಶನ್ನಿಂದ ಅದರ ಆಬ್ಜೆಕ್ಟಿವ್-ಸಿ ಸಹೋದರ ಎನ್ಎಸ್ಎಸ್ಸ್ಟ್ರಿಂಗ್ ಸೇರಿವೆ. ಹಗ್ಗದಂತಹ ತಂತಿಗಳನ್ನು ಶೇಖರಿಸಿಡಲು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾದ ರಚನೆಗಳನ್ನು ಸಹ ಬಳಸಬಹುದು. ಖಾಲಿ ಸ್ಟ್ರಿಂಗ್ ಸೆಂಟಿನೆಲ್ ಮೌಲ್ಯದ ಉಲ್ಲೇಖಗಳು ಸ್ಟ್ರಿಂಗ್ ಡೇಟಾ ಸ್ಟ್ರಕ್ಚರ್ಗಳನ್ನು ಸಹ ನೋಡಿಃ ಸಿ ಸ್ಟ್ರಿಂಗ್