傳遞,我想寫一個for循環,通過對0至9中的字符串:for循環:一個字符串從「0」到「9」
for (string j = "0"; j < "10"; j++) {
}
,但它不知道運營商++ (它獲得一個整數(1)而不是一個字符串「1」)。
我覺得寫的:j+="1"
,但隨後j
將"01"
然後"011"
...
附:我不想使用#include <string>
或其他的功能。 (stoi等)
任何幫助表示讚賞!
傳遞,我想寫一個for循環,通過對0至9中的字符串:for循環:一個字符串從「0」到「9」
for (string j = "0"; j < "10"; j++) {
}
,但它不知道運營商++ (它獲得一個整數(1)而不是一個字符串「1」)。
我覺得寫的:j+="1"
,但隨後j
將"01"
然後"011"
...
附:我不想使用#include <string>
或其他的功能。 (stoi等)
任何幫助表示讚賞!
不是這樣的,但是......
char x[]={'0',0};
for(; x[0] <= '9'; ++x[0])
{
}
編輯:0..99版本
char x[]={'0','0',0};
int stroffs = 1;
for(; x[0] <= '9'; ++x[0])
{
for(x[1] = '0'; x[1] <= '9'; ++x[1])
{
char * real_str = x + stroffs;
}
stroffs = 0;
}
謝謝! 我該如何改變它的工作方式數字在0到20之間? –
@AlonShmiel見編輯 – kassak
您可以像j[0]++
一樣將第一個字符增加到下一個ascii值。但這只是對「0」 - 「9」
編輯:只是一個想法,不是一個完美的代碼:爲0
到20
;
i = 0;
(j > "9") && (i==0) ? j[i]++ : (++i, j="10");
謝謝..有沒有辦法做到這一點0-20之間的數字 –
@AlonShmiel有條件地使用'+ ='當數值從'9'變爲'10'時 –
@AlonShmiel審查更新代碼 –
有了您的約束(雖然我不知道你如何使用string
無#include <string>
):
const char* x[] =
{
"0", "1", .... , "10"
}
for (int i = 0 ; i <= 10 ; i++)
{
x[i]....
}
環路與整數,然後手動將其轉換爲字符串?
像
for (int i = 0; i < 10; i++)
{
string j(1, '0' + i); // Only works for single digit numbers
}
做你的迭代與整數,並將其轉換到循環內的字符串,如下所示:
// Your loop counter is of type int
for (int i = 0 ; i != 10 ; i++) {
// Use string stream to convert it to string
ostringstream oss;
oss << i;
// si is a string representation of i
string si = oss.str();
cout << si << endl;
}
這適用於任何種類的整數沒有限制。
可以使用帶的atoi:
#include <stdlib.h> // or #include <cstdlib>
for (int j = atd::atoi("0"); j < std::atoi("10"); j++) {
}
正是* *可以使用哪些? –
Couls你更精確的關於你的意圖嗎? –
我有一個size_baskets可以介於0到20之間(它是一個字符串)。我有一個函數可以得到一個字符串,並打印出編號爲'i'的籃子中的所有球。所以我必須做一些事情:for(int i = 0; i print(i);但'我'必須是字符串,並且我想要使用stoi函數(因爲它屬於,所以我必須發送一個字符串。 –