假設我有一個字符串值「110099」,並且我需要以x的步長遞增子串值「00」直到y,並且如果x = 10且y = 90則換行爲零,即「111099 「,」112099「...和」119099「之後,字符串值爲」110099「。任何人都可以請幫助我如何開始。謝謝你的時間。編號: 更改爲通用的問題。在一個字符串中的子串增量
回答
- 取出想要增加的子串。
- 將其轉換爲整數值。
- 增加10,然後增加100。
- 投回到字符串。
將其替換回原始字符串中。
代碼很簡單。
非常感謝... –
只是增加了第三個「數字」:
char s[] = "110099";
for (; ;)
{
printf("Current value: %s\n", s);
if (s[2] == '9') { s[2] = '0'; break; }
++s[2];
}
這是假設你的角色在上升範圍內連續設置商店的數字。
應該是「0」而不是「0」。 –
@AlexeyFrunze:當然 - 謝謝! –
的"00"
該規範是誤導性的,因爲它是唯一一個需要改變(在"00"
第二0
從不改變)字符串中的第三個字符。它可以增加一個char
因此如果第三char
不等於9
然後增加它,否則將其設置爲0
:
char a[] = "110099";
for (int i = 0; i < 20; i++)
{
a[2] = ('9' == a[2]) ? '0' : a[2] + 1;
printf("%s\n", a);
}
由於您只需要檢查和更改一個數字,我會直接在字符串表示中進行。
也許是這樣的:以上
#define INCR_INDEX 2
int increment(char *value)
{
if(value[INCR_INDEX] == '9')
{
value[INCR_INDEX] = '0';
return 1;
}
++value[INCR_INDEX];
return 0;
}
做增量,並返回1
如果它包裹,0
如果事實並非如此。
這是安全的相對於編碼100%,C保證主機環境編碼在相鄰位置的十進制數字,所以++
上的char
保持任何位數小於9
總是會生成下一個數字。
這是微不足道的:
#include <stdio.h>
void incDigit(char* str, size_t pos)
{
if (++str[pos] > '9')
str[pos] = '0';
}
int main(void)
{
char str[] = "110099";
int i;
printf("Original: %s\n", str);
for (i = 1; i <= 10; i++)
{
printf("Adding 1... ");
incDigit(str, 2);
printf("%s\n", str);
}
return 0;
}
輸出(ideone):
Original: 110099
Adding 1... 111099
Adding 1... 112099
Adding 1... 113099
Adding 1... 114099
Adding 1... 115099
Adding 1... 116099
Adding 1... 117099
Adding 1... 118099
Adding 1... 119099
Adding 1... 110099
這不是完全清楚你要如何靈活這是。解決您當前的問題可能是以下功能。
void increment(char str*) {
str[2]++;
if (str[2]>'9') str[2]='0';
}
測試:
char str[] = "110099";
for (int i = 0; i < 12; i++) {
increment(str);
printf("%s\n", str);
}
結果:
111099
112099
113099
114099
115099
116099
117099
118099
119099
110099
111099
112099
- 1. 增量在字符串
- 2. 增量X在字符串
- 3. 增加一個字符的字符串
- 4. 一個字符串中的Java子串
- 5. 在某個子字符串中分割一個字符串?
- 6. 使用子增加一個字符串中的數字
- 7. 用一個StringBuffer子字符串替換一個子字符串
- 8. 從一個字符串中刪除一個子字符串
- 9. 獲取字符串中子字符串的第一個字母
- 10. 在一個字符串中有多少次子字符串[Java]
- 11. 的Perl:字符串中子字符串或子字符串中
- 12. '字符串'中的SQL自動增量
- 13. 在另一個字符串中查找一個字符串的字符串
- 14. 從一個字符串中提取兩個子字符串
- 15. 從一個字符串中提取兩個子字符串
- 16. 使用printf並遞增地增加一個字符串變量?
- 17. 在Erlang中從一個大字符串中提取一個子字符串
- 18. 獲取字符串中的最後一個子字符串?
- 19. 從一個巨大的字符串中提取子字符串
- 20. Bash:增加一個字符串中的計數器變量
- 21. 查找在另一個字符串列表中有一個項目的子字符串的所有字符串
- 22. 在c中搜索一個字符串的子字符串,然後創建一個新的字符串
- 23. 如何在Python中替換多個字符串中的一個子字符串?
- 24. 字符串內部的增量數字
- 25. 從字符串值的數字增量
- 26. 字符串數組增加TextToSpeech中的每個字符串
- 27. 爲子串測試一個字符串?
- 28. 在十億個唯一字符串列表中搜索一個子字符串
- 29. 從一個字符串中刪除一個子字符串,使用memmove在C
- 30. 在一個字符串變量中存儲一個字符
一種選擇是隻是做長加(add,檢查隨身攜帶,並繼續到下一個數字)。另一種選擇是以int形式存儲,並且每次都轉換爲數字。 – nhahtdh
只是繼續添加1000? – jon