有char double[] = "1.2345678";
,我不得不在這個char *
之後.
之後修剪第4位以上的所有數字。字符修剪結尾*
Q
字符修剪結尾*
1
A
回答
2
一個顯而易見的解決方案是通過NUL
替換字符,像這樣:
char *foo = strdup("1.2345678"); // FIXME: check return value
foo[5] = '\0';
注意準確的位置可能會有所不同,depening在數字之前的多少出現「」字符。
遍歷字符串foo
,如果你遇到改變狀態passed_dot
,並插入一個NUL
後4個字符「」:
char *p = foo;
int i = 0;
int passed_dot = 0;
while (p && *p) {
if (*p == '.') passed_dot = 1;
if (passed_dot) i++;
if (i == 4) {
*p = '\0';
break;
}
p++;
}
如果你不能買得起更多的內存,你可以strdup()
生成的字符串和free()
舊爲了節省內存:
new_str = strdup(foo); // and don't forget to check for NULL
free(foo);
3
2
注意
char * double= "1.2345678";
聲明瞭一個字符串文字。這是常量,所以不能直接修改。爲了得到一個修改字符串,你可以聲明爲
char double[] = "1.2345678";
或
char* double = strdup("1.2345678");
然後插入一個空字符在其他的答案建議。
相關問題
- 1. 修剪結尾字母
- 2. 修剪結尾.0
- 3. 從字符串的開頭和結尾修剪特定字符
- 4. 從Javascript末尾修剪字符串
- 5. 如何修剪字符串的結尾空白?
- 6. 刪除或修剪在字符串的結尾回車
- 7. sql更新部分字符串和修剪結尾值
- 8. 從字符串的開始或結尾修剪匹配字符C++
- 9. 修剪一個字符串的結尾,如果它包含某個字符?
- 10. 正則表達式 - 字符串末尾的修剪字符
- 11. 修剪結尾的檢票迴應
- 12. 從字符串的開始和結尾修剪非字母數字
- 13. 修剪字符,直到達到結腸
- 14. 從結束的修剪字符串
- 15. 修剪字符串
- 16. JavaScript修剪字符
- 17. 修剪字符串
- 18. 修剪字符串
- 19. 修剪字符串
- 20. CSS3省略號剪切字符串結尾不同的字符
- 21. numpy修剪字節字符串中的尾隨零
- 22. Java - 修剪字符串中的前導字符或尾隨字符?
- 23. 修剪字符和修剪字符串 - Python
- 24. PostgreSQL的修剪開頭和結尾的文字:「
- 25. Cygwin修剪尾隨空白
- 26. php:從字符串的末尾修剪<br>?
- 27. 如何修剪NSString到11個字符並在末尾添加'...'
- 28. 來自字符串的SQLite修剪結束字符
- 29. 在SQL Server中刪除多個尾隨字符 - Oracle相當於修剪(尾隨)
- 30. 字符數,然後修剪
請不要嘗試使用double作爲變量名稱。這是一個關鍵字! – anishsane