字符串的两位数分割

时间:2015-10-22 12:11:13

标签: c++ division

我想要得到一个我正在获得的字符串值。可以说我有一组客户。每个客户都设置在一封信中有多张纸。我有两个字符串变量:

sheetsPerCustomer和totalPagescustomer

目前它看起来像这样:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.activity_readinglist_activity,
            menu);

    MenuItem actionItem = menu.findItem(R.id.reading_share);
    ShareActionProvider actionProvider = (ShareActionProvider) actionItem
            .getActionProvider();

    Intent intent = getDefaultShareIntent();
    if (intent != null)
        actionProvider.setShareIntent(intent);

    return super.onCreateOptionsMenu(menu);
}

private Intent getDefaultShareIntent() {

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_SUBJECT, titleR);
    intent.putExtra(Intent.EXTRA_TEXT, handleR);
    return intent;
}

我必须将totalPagescustomer视为总页数为3而不是6.它应该如下所示:

{{1}}

如果我将字符串转换为int进行除法,则直接除法不起作用,因为“0”将丢失。我需要保留左侧数字,因为总页数可以是10,20等,所以我需要两位数。有没有办法存档?

2 个答案:

答案 0 :(得分:1)

为自己省去麻烦并使用整数。它使你的意图更加清晰。如果你试图使用类似'int'的东西,那么也许你应该使用int。

如果您需要显示2位数字,您可以执行以下操作:

std::cout << std::setfill('0') << std::setw(2) << sheetsPerCustomer  << std::endl;

答案 1 :(得分:-1)

这是一种类似的方法:

#include <iostream>

using namespace std;

int main()
{
   char buf[16];
   int j = 7;
   sprintf(buf, "%02d", j);
   cout << "Result is " << buf << endl;
   return 0;
}

这会打印Result is 07