C 如何将数组中的数字更改为符号
我试图找到一种将数组中字符串的数字转换为#符号的好方法 我想说清楚,这是家庭作业。我请求帮助是因为我不仅遇到了我想要克服的障碍;但我也想了解数组和函数之间的关系 我已经编写了一些代码,如下所示,但我觉得自己对数组中调用之间的关系感到困惑,因为它们在函数中 以下是我所做的:C 如何将数组中的数字更改为符号,c,arrays,function,logical-operators,C,Arrays,Function,Logical Operators,我试图找到一种将数组中字符串的数字转换为#符号的好方法 我想说清楚,这是家庭作业。我请求帮助是因为我不仅遇到了我想要克服的障碍;但我也想了解数组和函数之间的关系 我已经编写了一些代码,如下所示,但我觉得自己对数组中调用之间的关系感到困惑,因为它们在函数中 以下是我所做的: void coverNumbers(char s[]) { char num; if (s[num] >= '0' || s[num] <= '9') num = '#'; }
void coverNumbers(char s[]) {
char num;
if (s[num] >= '0' || s[num] <= '9')
num = '#';
}
void covernumber(字符s[]{
字符数;
如果(s[num]>='0'| | s[num]您的操作方式是错误的。您需要在字符串上循环以分别检查和替换每个字符
试试这个
void coverNumbers(char s[]) {
for (int i = 0; s[i]; i++)
if (s[i] >= '0' && s[i] <= '9')
s[i] = '#';
}
void covernumber(字符s[]{
for(int i=0;s[i];i++)
如果(s[i]>=“0”和&s[i]欢迎使用堆栈溢出
您不应该使用堆栈溢出来解决此类问题。但是,如果其他人还没有提出类似的问题,您可以随时就您面临的问题提问
解决方案:
void coverNumbers(char s[]) {
int len = strlen(s);
for (int i = 0; i < len; i++)
if (s[i] >= '0' && s[i] <= '9')
s[i] = '#';
printf("%s", s);
}
算法:
void coverNumbers(char s[]) {
int len = strlen(s);
for (int i = 0; i < len; i++)
if (s[i] >= '0' && s[i] <= '9')
s[i] = '#';
printf("%s", s);
}
- 获取字符串的长度
- 迭代字符串中的每个字符
- 根据字符串当前位置(索引)中的值,如果是数字,则替换为“#”
- 打印输出
代码:
void coverNumbers(char s[]) {
int len = strlen(s);
for (int i = 0; i < len; i++)
if (s[i] >= '0' && s[i] <= '9')
s[i] = '#';
printf("%s", s);
}
void covernumber(字符s[]{
int len=strlen(s);
对于(int i=0;i 如果(s[i]>='0'&&s[i]假设CoverNumber接收到一个C字符串,即指向一个以空字节'\0'
终止的char数组的指针,您应该迭代所有字符并执行修改。但是请注意,您使用|
而不是&
来测试数字。s[num]
是一个数字,如果它是='0'
和='0'和&s[i]='0'&&s,谢谢你,这解决了我的问题!但据我的理解,for循环是如何工作的。你是在循环数组本身吗?字符数组是字符串。而C中的字符串以空字符(\0)结尾。因此,for循环一直持续到s[i]为null,这与写入s[i]!='\0'相同注意:您需要在文件中添加“#include”才能使用此选项code@IssamRafihi谢谢。但是这个在线gdb编译器没有要求我添加它。char-num;
-然后使用num
-num
没有被赋予值