字符串指針修改
回答
您不能修改字符串文字,因此您將不得不使用該新格式創建第二個字符串。
或者,如果格式僅用於顯示,那麼您可以在顯示格式時應用格式來緩慢創建新字符串。例如:
printf("\n%s\n", a);
我不知道這是否就是你要找的,但它看起來像你想連接字符串:How do I concatenate const/literal strings in C?
使用「\ n」作爲第一個和最後一個字符串,以及作爲第二個字符串給出的字符串。
如果您使用指向字符串的指針,則不能這樣做,原因是字符串常量是不變的,無法更改。
你可以做什麼是聲明數組,有足夠的空間來容納多餘的字符,像
char a[16] = "asdf";
然後你就可以如memmove
左右移動的字符串,並手動添加新角色:
size_t length = strlen(a);
memmove(&a[1], a, length + 1); /* +1 to include the terminating '\0' */
a[0] = '\n'; /* Add leading newline */
a[length + 1] = '\n'; /* Add trailing newline */
a[length + 2] = '\0'; /* Add terminator */
char* a = "asdf";
char* aNew = new char[strlen(a) + 2]; //Allocate memory for the modified string
aNew[0] = '\n'; //Prepend the newline character
for(int i = 1; i < strlen(a) + 1; i++) { //Copy info over to the new string
aNew[i] = a[i - 1];
}
aNew[strlen(a) + 1] = '\n'; //Append the newline character
a = aNew; //Have a point to the modified string
希望這是你所期待的。當你完成它時,不要忘記調用「delete [] aNew」來防止它泄漏內存。
-1針對不同編程語言的離題答案。 – Lundin 2013-02-11 08:41:03
可能應該重複檢查標記...它的工作原理是C++:P – 2013-02-11 20:12:12
- 1. qsort如何修改指向字符串的指針?
- 2. 如何修改字符指針
- 3. 修改一個字符指針?
- 4. Ç指定字符串指針到其他字符串指針
- 5. 使用指針簡單修改C字符串
- 6. 字符串指針
- 7. 指向字符串的指針無法更改字符
- 8. 複製字符串指針,指針
- 9. 修改指針值
- 10. 修改字符串
- 11. 修改字符串
- 12. 修改字符串
- 13. 修改結構體指針的指針
- 14. 創建指針的指針並進行修改而不修改原始指針?
- 15. C字符串和指針
- 16. 指針 - 字符串C++
- 17. 字符串指針功能
- 18. 字符串和指針
- 19. C,指針,字符串
- 20. 指針和字符串
- 21. c字符串指針
- 22. c字符串指針
- 23. C字符串和指針
- 24. 字符串指針和strcpy
- 25. 字符指針和字符串
- 26. 字符串與字符指針
- 27. scanf字符指針中的字符串
- 28. 字符指針爲字符串
- 29. 字符指針轉換爲字符串
- 30. Wrtiting字符串內存流 - 指向字符串的指針
在學習字符串處理之前,你應該仔細研究數組和指針。 – Lundin 2013-02-11 08:40:09