我试图找出给定数组中除空格外有多少个字符 但它不起作用,k应该计算空格并从i [字符+空格]中减去它们,但没有成功。
let arrayNotEmpty = not { (array: [Int]) in array.isEmpty }
arrayNotEmpty([1, 3, 5]) // true
答案 0 :(得分:0)
这里很少观察
fgets(c ,256, stdin);
fgets()
将\n
存储在缓冲区的末尾(如果已读取)。在fgets()
的手册页中
如果读取了
newline
,则会将其存储到缓冲区。 终止空字节('\0'
)存储在的最后一个字符之后 缓冲区
先删除结尾的\n
,然后对其进行迭代。对于例如
fgets(c, sizeof(c), stdin);
c[strcspn(c, "\n")] = 0; /* remove the trailing \n */
这里也不需要使用continue
,即,您无需使用它就可以完成任务。对于例如
int main(void) {
int i= 0;
int k= 0;
char c[256] = ""; /* fill whole array with 0 */
fgets(c, sizeof(c), stdin);
c[strcspn(c, "\n")] = 0; /* remove the trailing \n */
while(c[i] != '\0' ){ /* or just c[i] */
if(c[i] == ' ') {
k++; /* when cond is true, increment cout */
}
i++; /* keep it outside i.e spaces or not spaces
this should increment */
}
printf("spaces [%d] without spaces [%d]\n",k,i-k);
return 0;
}