字符串指针修改
回答
您不能修改字符串文字,因此您将不得不使用该新格式创建第二个字符串。
或者,如果格式仅用于显示,那么您可以在显示格式时应用格式来缓慢创建新字符串。例如:
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