关于字符串中所含整数输出的问题
#include<iostream>#include<string.h>
#define MAX 1024
using namespace std;
int cal_num(char* str)
{
char *pstr;
int count;
int number=0;
pstr=str;
while(*pstr!=0)
{
if(*pstr>='0'&&*pstr<='9')
{
count++;
number=number*10+*pstr;//该句错误,如何修改,指针存储的数字应该如何加呢。
}
else
{
cout<<number;//该句错误
}
pstr++;
}
cout<<"数字的个数是:"<<count;
}
int main()
{
char str;
cout<<"请输入一串字符:";
cin>>str;
cal_num(str);
}
我想要在输出字符串数字个数的同时,输出字符串中的整数,例如:输入dasd566dsa13,输出:566,13,5,上述程序标注语句应该怎么修改啊,而且一个如何忽略数字间的其他字符呢,谢谢了。 #include <iostream>
#include <string>
#include <cctype>
void calcstr(std::string &str)
{
int count = 0;
for (char &i : str)
{
if (isdigit(i))
{
count++;
}
if (!isdigit(i))
{
i = 0;
}
}
std::cout << "字符串中数字的个数是:" << count << "\n"
<< "字符串中的数字有:" << str << std::endl;
}
int main(int argc, char const *argv[])
{
std::string a = "gfgf122gf5f9g7+f+g854";
calcstr(a);
return 0;
}
-----------------------------------------------
E:\Users\admin\Documents\VScode\Code>cmd /C "c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-e0rmbvrj.mo0 --stdout=Microsoft-MIEngine-Out-fdgtarns.xp5 --stderr=Microsoft-MIEngine-Error-xca4qu35.qbs --pid=Microsoft-MIEngine-Pid-30jqmv5x.4bs --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi "
源字符串:gfgf122gf5f9g7+f+g854
字符串中数字的个数是:9
字符串中的数字有: 1225 9 7 854
E:\Users\admin\Documents\VScode\Code> bin554385863 发表于 2019-11-26 19:53
-----------------------------------------------
E:%users\admin\Documents\VScode\Code>cmd /C "c:%u ...
我对照着看一下,谢谢啦 bin554385863 发表于 2019-11-26 19:53
-----------------------------------------------
E:%users\admin\Documents\VScode\Code>cmd /C "c:%u ...
我刚刚看了下,这样编我也是会的,我是想在我那个程序上面改,因为我对指针不是很明白 forever33221 发表于 2019-11-27 15:03
我刚刚看了下,这样编我也是会的,我是想在我那个程序上面改,因为我对指针不是很明白
代码逻辑都是一样的
#include <iostream>
#include <cstring>
void _char(char *str)
{
size_t count = 0;
std::cout<<"字符串中的数字有: ";
for (char* i = str; *i != '\0'; i++)
{
if (*i >= '0' && *i <= '9')
{
count++;
std::cout << *i;
}
if (*i > '9' || *i < '0')
{
std::cout << char(0);
}
}
std::cout << "\n字符串中的数字有" << count << "个" << std::endl;
}
int main(int argc, char const *argv[])
{
char *s = "35dfa6+f5d6$%5%586";
_char(s);
return 0;
}
----------------------------------------------------
Microsoft Windows [版本 10.0.18363.476]
(c) 2019 Microsoft Corporation。保留所有权利。
E:\Users\admin\Documents\VScode\Code>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-vgzl1cdd.cme --stdout=Microsoft-MIEngine-Out-wlofnk4p.dtn --stderr=Microsoft-MIEngine-Error-r52enkrg.o0w --pid=Microsoft-MIEngine-Pid-kwvstymv.b1h --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
字符串中的数字有: 35 65 65 586
字符串中的数字有9个
E:\Users\admin\Documents\VScode\Code> bin554385863 发表于 2019-11-27 15:34
代码逻辑都是一样的
----------------------------------------------------
好的,谢谢啦
页:
[1]