8 个解决方案
#1
假设你输入一串字符,scanf,fscanf等等函数了,依次读取字符,判断字母是否大于等于'0'小于等于'9'。不就算是数字了么
#2
按C的风格,你就写个while,条件就是遇到0就算字符串结束。
bufText
while(bufText[i] != 0)
{
1楼的方法判断出数字;
i++;
}
bufText
while(bufText[i] != 0)
{
1楼的方法判断出数字;
i++;
}
#3
#include <iostream>
#include <string>
using namespace std;
int main()
{
string tStr;
cin>>tStr;
int tCount = 0;
int tLen = tStr.length();
for(int i=0; i<tLen; i++)
if(('0'<=tStr[i])&&('9'>=tStr[i]))
tCount++;
return 0;
}
#4
同意楼上
#5
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
printf("skip char[%c]\n",p[0]);
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.
#6
先谢谢你了,早上看到没人回复就下了,现在才上,我先试试哈
#7
C语言我一点也不懂,不过三楼的代码让我现在明白了C++逐个读取字符串了,还是非常感谢你的帮忙
#8
关键就是我当时不知道怎样依次读取,不过现在知道了,还是谢谢你的热心帮忙
#1
假设你输入一串字符,scanf,fscanf等等函数了,依次读取字符,判断字母是否大于等于'0'小于等于'9'。不就算是数字了么
#2
按C的风格,你就写个while,条件就是遇到0就算字符串结束。
bufText
while(bufText[i] != 0)
{
1楼的方法判断出数字;
i++;
}
bufText
while(bufText[i] != 0)
{
1楼的方法判断出数字;
i++;
}
#3
#include <iostream>
#include <string>
using namespace std;
int main()
{
string tStr;
cin>>tStr;
int tCount = 0;
int tLen = tStr.length();
for(int i=0; i<tLen; i++)
if(('0'<=tStr[i])&&('9'>=tStr[i]))
tCount++;
return 0;
}
#4
同意楼上
#5
#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
printf("skip char[%c]\n",p[0]);
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.
#6
先谢谢你了,早上看到没人回复就下了,现在才上,我先试试哈
#7
C语言我一点也不懂,不过三楼的代码让我现在明白了C++逐个读取字符串了,还是非常感谢你的帮忙
#8
关键就是我当时不知道怎样依次读取,不过现在知道了,还是谢谢你的热心帮忙