返回相同结果的c语言void函数 #包括 #包括 空隙挤压(字符s[],int c); int main(){ 字符x[]=“猫”; int y=10; 挤压(x,y); printf(“%s%d\n”,x,y); 返回0; } 空挤压(字符s[],整数c){ int i,j; 对于(i=j=0;s[i]!='\0';i++) 如果(s[i]!=c) s[j++]=s[i]; s[j]='\0'; }
此函数是“从s中删除所有c”。我不知道如何使它工作。此函数的输出为猫,10,没有任何变化。我在这里做错了什么吗?该函数工作正常 问题是字符串返回相同结果的c语言void函数 #包括 #包括 空隙挤压(字符s[],int c); int main(){ 字符x[]=“猫”; int y=10; 挤压(x,y); printf(“%s%d\n”,x,y); 返回0; } 空挤压(字符s[],整数c){ int i,j; 对于(i=j=0;s[i]!='\0';i++) 如果(s[i]!=c) s[j++]=s[i]; s[j]='\0'; },c,void,C,Void,此函数是“从s中删除所有c”。我不知道如何使它工作。此函数的输出为猫,10,没有任何变化。我在这里做错了什么吗?该函数工作正常 问题是字符串cats不包含字符10,因此您不应该期望更改。在从ASCII派生的代码集中,字符10是换行符'\n'字符。创建字符串char z[]=“一行\n或\n多行\n”并调用sqeeze(z,'\n'),打印前后的z: #include <stdio.h> void squeeze(char s[], int c); int main(void) {
cats
不包含字符10
,因此您不应该期望更改。在从ASCII派生的代码集中,字符10
是换行符'\n'
字符。创建字符串char z[]=“一行\n或\n多行\n”代码>并调用sqeeze(z,'\n')代码>,打印前后的z
:
#include <stdio.h>
void squeeze(char s[], int c);
int main(void)
{
char x[] = "cats";
int y = 10;
printf("before: [%s] %d\n", x, y);
squeeze(x, y);
printf("after: [%s] %d\n", x, y);
printf("%s %d\n", x, y);
char z[] = "One\nline\nor\nmany\n";
printf("before: [%s]\n", z);
squeeze(z, '\n');
printf("after: [%s]\n", z);
return 0;
}
void squeeze(char s[], int c)
{
int i, j;
for (i = j = 0; s[i] != '\0'; i++)
if (s[i] != c)
s[j++] = s[i];
s[j] = '\0';
}
该功能工作正常
问题是字符串cats
不包含字符10
,因此您不应该期望更改。在从ASCII派生的代码集中,字符10
是换行符'\n'
字符。创建字符串char z[]=“一行\n或\n多行\n”代码>并调用sqeeze(z,'\n')代码>,打印前后的z
:
#include <stdio.h>
void squeeze(char s[], int c);
int main(void)
{
char x[] = "cats";
int y = 10;
printf("before: [%s] %d\n", x, y);
squeeze(x, y);
printf("after: [%s] %d\n", x, y);
printf("%s %d\n", x, y);
char z[] = "One\nline\nor\nmany\n";
printf("before: [%s]\n", z);
squeeze(z, '\n');
printf("after: [%s]\n", z);
return 0;
}
void squeeze(char s[], int c)
{
int i, j;
for (i = j = 0; s[i] != '\0'; i++)
if (s[i] != c)
s[j++] = s[i];
s[j] = '\0';
}
由于字符串cats
不包含字符10
,您不应该期望更改,是吗?在从ASCII派生的代码集中,字符10
是换行符'\n'
字符。创建字符串char z[]=“一行\n或\n多行\n”编码>并调用挤压(z,'\n')代码>,前后打印z
。收到了。谢谢您忘记了ascii码。由于字符串cats
不包含字符10
,您不应该期望更改,是吗?在从ASCII派生的代码集中,字符10
是换行符'\n'
字符。创建字符串char z[]=“一行\n或\n多行\n”编码>并调用挤压(z,'\n')代码>,前后打印z
。收到了。谢谢你忘了ascii码。