我不知道输入的数有多少位,不知如何处理
10 个解决方案
#1
当做字符串处理,先定义一个char a[MAX],再scanf("%s",a);
C++中可以直接定义一个string a;再cin>>a;即可
C++中可以直接定义一个string a;再cin>>a;即可
#2
可是我不知道用户输入的字符串长度,怎么确定数组的元素个数???
#3
你可以指定一个长度, 能体现你的功能就行了.
实际产品中又不是用户从输入字符串, 根据实际情况分配动态内存就可以了
实际产品中又不是用户从输入字符串, 根据实际情况分配动态内存就可以了
#4
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
j=sizeof (a);
char str1[j],str2[j]; //此行报错,怎么改啊,求大神!
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
y=x+2;
else if (x>7&&x<=9)
y=x%10;
else printf("error");
}
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
j=sizeof (a);
char str1[j],str2[j]; //此行报错,怎么改啊,求大神!
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
y=x+2;
else if (x>7&&x<=9)
y=x%10;
else printf("error");
}
#5
char str1[j],str2[j]; //此行报错,怎么改啊,求大神!
这里的申明中“j”不能使变量,必须是常量或者常量表达式
处理!
可以
#define m 10
...
下面申明就可以了
不知道长度的话,可以写个if来判断长度自适应
这里的申明中“j”不能使变量,必须是常量或者常量表达式
处理!
可以
#define m 10
...
下面申明就可以了
不知道长度的话,可以写个if来判断长度自适应
#6
谢谢各位,可是为什么我改了以后编译通过,但是运行的结果不对呢?
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
#define m sizeof(a)
j=m;
char str1[m],str2[m];
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
{
y=x+2;
return (y);
}
else if (x>7&&x<=9)
{
y=x%10;
return (y);
}
else printf("error");
}
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
#define m sizeof(a)
j=m;
char str1[m],str2[m];
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
{
y=x+2;
return (y);
}
else if (x>7&&x<=9)
{
y=x%10;
return (y);
}
else printf("error");
}
#7
第七行定义a是char类型,怎么输入时用%s啊?
#8
那怎么改???
#9
读一个字符,加2,输出,再读一个字符,加2,输出……
根本没必要在内存中保存
根本没必要在内存中保存
#10
谢谢大家,我终于编出来了,换了一种思路!
#1
当做字符串处理,先定义一个char a[MAX],再scanf("%s",a);
C++中可以直接定义一个string a;再cin>>a;即可
C++中可以直接定义一个string a;再cin>>a;即可
#2
可是我不知道用户输入的字符串长度,怎么确定数组的元素个数???
#3
你可以指定一个长度, 能体现你的功能就行了.
实际产品中又不是用户从输入字符串, 根据实际情况分配动态内存就可以了
实际产品中又不是用户从输入字符串, 根据实际情况分配动态内存就可以了
#4
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
j=sizeof (a);
char str1[j],str2[j]; //此行报错,怎么改啊,求大神!
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
y=x+2;
else if (x>7&&x<=9)
y=x%10;
else printf("error");
}
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
j=sizeof (a);
char str1[j],str2[j]; //此行报错,怎么改啊,求大神!
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
y=x+2;
else if (x>7&&x<=9)
y=x%10;
else printf("error");
}
#5
char str1[j],str2[j]; //此行报错,怎么改啊,求大神!
这里的申明中“j”不能使变量,必须是常量或者常量表达式
处理!
可以
#define m 10
...
下面申明就可以了
不知道长度的话,可以写个if来判断长度自适应
这里的申明中“j”不能使变量,必须是常量或者常量表达式
处理!
可以
#define m 10
...
下面申明就可以了
不知道长度的话,可以写个if来判断长度自适应
#6
谢谢各位,可是为什么我改了以后编译通过,但是运行的结果不对呢?
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
#define m sizeof(a)
j=m;
char str1[m],str2[m];
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
{
y=x+2;
return (y);
}
else if (x>7&&x<=9)
{
y=x%10;
return (y);
}
else printf("error");
}
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int i,j;
char a;
scanf("%s",&a);
#define m sizeof(a)
j=m;
char str1[m],str2[m];
scanf("%s",str1);
for (i=0;i<=j-1;i++)
{
int t(char x);
str2[i]=t(str1[i]);
}
printf("%s",str2);
system("pause");
}
int t(char x)
{
int y;
if (x>=0&&x<=7)
{
y=x+2;
return (y);
}
else if (x>7&&x<=9)
{
y=x%10;
return (y);
}
else printf("error");
}
#7
第七行定义a是char类型,怎么输入时用%s啊?
#8
那怎么改???
#9
读一个字符,加2,输出,再读一个字符,加2,输出……
根本没必要在内存中保存
根本没必要在内存中保存
#10
谢谢大家,我终于编出来了,换了一种思路!