C 使用字符间距为的printf打印数组

C 使用字符间距为的printf打印数组,c,arrays,printf,C,Arrays,Printf,这一个很简单,我有一个字符数组,我想打印它,但我想在数组的每个单独成员之间有一个空间,这可以用printf吗?还是我必须准备一个单独的功能 例如: char array[]="hello"; printf ("%s", array); 输出: h e l l o 您也可以使用此方法来解决您的任务 int main(){ char array[]="hello"; char *p=&array; while(*p) { printf("%c ",*p

这一个很简单,我有一个字符数组,我想打印它,但我想在数组的每个单独成员之间有一个空间,这可以用printf吗?还是我必须准备一个单独的功能

例如:

char array[]="hello";
printf ("%s", array);
输出:

h e l l o

您也可以使用此方法来解决您的任务

 int main(){
    char array[]="hello";
    char *p=&array;
    while(*p) {
     printf("%c ",*p); 
       p++;
    }
    return 0;
}
输出

h e l l o

如果你知道数组的长度,那么让它为n


for(i=0;i),因为您不希望在最后一个字符后有额外的空格:

char *tmp = array;
if (*tmp) {
    putchar(*tmp++);
    while (*tmp) {
        putchar(' ');
        putchar(*tmp++);
    }
}
或者把它变成一个函数:

void put_with_spaces(const char *s, FILE *fp)
{
    if (!*s)
        return;
    fputc(*s++, fp);
    while (*s) {
        fputc(' ', fp);
        fputc(*s++, fp);
    }
}

当我浏览这个问题时,我想到了一个新的解决办法

for (int i = 0; i < n; i++) {
    printf("%*c", 1 + !!i, arr[i]);
}
for(int i=0;i
你必须创建一个(简单的)函数来完成这项工作。你需要一个单独的函数,例如:
void spacedprint(const char*s){putchar(*s++);while(*s){putchar(“”);putchar(*s++);}
你希望打印多少空间
“h”
“he”
?(0,0,1)?@pmg:您应该在打印任何内容之前测试非空字符串,否则您的代码就是我所想的。@JonathanLeffler:
void spacedprint(const char*s){if(s&&*s){/*请参阅旧的注释*/}
您也可以简单地使用并执行printf(“%c”,数组[0])你只需要比数组长度少做一次,然后再单独做一次,否则你会得到比你需要的更多的空间。这也会导致比需要的多出一个空格字符。很好地使用文件指针来存储内容!