回答
你大概是这个意思的printf ...
int i;
for(i = 0; i < h; i++)
printf("%s ",e);
'%c'是你想要打印字符串的字符。你需要'%s'。此外,你只是使用'i'迭代,可以内声明它的'for'那样:'用于(INT I = 0; I <小时;我++)'所以它会离开循环之后被破坏。 – Badda
@Badda你不能在循环中插入int,只有当你使用C99进行编译时,至少我在C中一直存在这个问题,yea应该是%s而不是%c –
你在做什么不使用C11? C90是一个四分之一个世纪的老式过时的17年(它被C99取代)?您应该在默认情况下使用C11进行编译。 –
基于C阅读了循环here
for(int i = 0; i < h; i = i + 1) {
printf("%s", e);
}
更传统的使用'; i ++)'作为'for'循环控制的最后一项。 –
我同意,为了清晰起见,我延长了语法,因为他可能是非常新的循环 –
一个while循环也将适用。您可以使用变量h
作为计数器。它while循环,你会先打印数量,然后在倒计时的方式计算的变量h
,直至为0,你会印有它究竟是H-倍
while(h>0){
printf("%s", e);
h--;
}
声明:此意愿当然改变h的价值!如果你依靠它来使用它不变的其他地方,那么你应该去for循环解决方案
这破坏了'h'的值。目前还不清楚这是否重要,但使用'h'作为限制的'for'循环可能更好。 –
@JonathanLeffler你是对的,我写了一个免责声明,限制我的回答 –
我想这是你问什么。
#include <stdio.h>
#include <stdlib.h>
char *inputString(size_t size){
char *str;
int ch;
size_t len = 0;
str = realloc(NULL, sizeof(char)*size);
if(!str)return str;
while(EOF!=(ch=fgetc(stdin)) && ch != '\n'){
str[len++]=ch;
if(len==size){
str = realloc(str, sizeof(char)*(size+=16));
if(!str)return str;
}
}
str[len++]='\0';
return realloc(str, sizeof(char)*len);
}
int main(void){
char *e;
int times,i=0;
printf("input string : ");
e = inputString(10);
printf("Number: ");
scanf("%d",×);
for(i=0;i<times;i++)
printf("%s ", e);
free(e);
return 0;
}
字符阅读循环似乎坚持在退出之前得到一个空白或换行符。这很奇怪。通常情况下,你需要一个'图形'字符(不是空白的东西)。你可以用'“%c”'作为格式并且没有循环。另外,在第一次迭代中,'element'未初始化。不要测试未初始化的变量;你不知道会发生什么。在布局上保持一致也是一个好主意。你在'scanf()'周围有大括号,但它与'while'在同一行 - 这是非常令人讨厌的格式。 'for'没有大括号。我使他们一致。 –
我向你提出问题,询问'e =“”'这可能是寻找空白或换行的部分理由,但你可以简单地使用'char * e =“”;'并且打印出来。 –
OP明确询问如何打印一个可以写入/初始化为'e =“”'的变量。看起来你的答案没有涵盖目标。隐含的问题“我如何学习C的基本概念?”你也没有回答。 – Yunnosch
一个for循环是计数迭代的典型方式,但的语法while循环可能是一个初学者更加清晰:
int count = 0;
while (count < h) {
printf("%s", e);
count = count + 1;
}
- 1. 在Haskell中打印字符串'N'次
- 2. C无法打印两次字符串
- 3. 打印n字符
- 4. 打印到屏幕n字符串
- 5. 如何打印字符串“\ n”
- 6. C#打印字符串
- 7. 在c#中打印字符串使用\ r \ n开始新行
- 8. C循环打印两次字符串? (使用scanf(“%c”))
- 9. 如何在C++中显式地在字符串中打印“\ n”
- 10. 如何在c中打印n个字符串?
- 11. 打印字符串'X'次(无循环)
- 12. waf - 打印两次的字符串
- 13. 该字符串打印多少次?
- 14. C通用打印数组函数 - 打印字符串数组
- 15. 打印字符串
- 16. 打印字符串
- 17. 如何使用bash打印“\ n”字符?
- 18. 通过重复字符串打印“n”个字符的字符串
- 19. 如何从数组中的字符串中打印第N个字符C++
- 20. Python,在第n次迭代中打印一个字母n次
- 21. 用特殊字符打印字符串
- 22. 打印字符多次
- 23. C打印一个字符串数组
- 24. 目标C打印字符串
- 25. printf()将不会打印字符串c
- 26. 如何打印字符串C++ MFC
- 27. C++打印一个反向字符串
- 28. 打印出最长的字符串c
- 29. 无法在C++中打印字符串
- 30. 打印字符串数组元素C++
你知道一个for循环是什么?你知道如何打印一次吗?你尝试了什么,你会得到什么错误? – user463035818
[找到一个很好的入门书或教程(http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list)和阅读有关*循环*。 –
看看一个[教科书](https://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list) –