C:如何将角色添加到另一个角色/一组角色?

时间:2013-04-13 21:43:53

标签: c

假设我有一个值为42(*)的char。我需要在n行中打印这个字符,用户定义n。但是,对于每个换班,必须打印另一个*。如果用户输入“6”,则结果如下:

*
**
***
****
*****
******

我正在考虑让程序重复打印并跳转一行n次,在每个循环结束时向char添加另一个*。是否有任何命令会将*转换为**然后转换为 * 等等?

3 个答案:

答案 0 :(得分:7)

您不需要进行任何字符串操作。对于每一行,如果行号为i,则只打印一个星号(使用putchar()等)i次,然后换行。

答案 1 :(得分:2)

您可以为此目的使用嵌套for循环...

for(i=0;i<n;i++)     //n is your user value
{
    for(j=0;j<=i;j++)
         {
          printf("%c",your_char);     //print char here
         }
    printf("\n");                    //for going to next line
}

顶部for循环将处理该行,而内部for循环将处理该列...

答案 2 :(得分:-1)

试试这个:

 void print_n_chars(char c, size_t count)
 {
     char *buffer;
     size_t i;

     buffer = malloc(count + 1);
     memset(buffer, 0, count + 1);

     for (i = 0; i < count; i++)
     {
         buffer[i] = c;

         printf("%s\n", buffer);
     }

     free(buffer);
 }

此算法具有O(n)性能,优于O(n^2/2)两个循环。

编辑:固定名称拼写错误,添加了效果评论