我试图逐行保存输入,并将其存储在一个字符串中。我需要能够检测到空行或只包含空格的行,并在发生这种情况时打印“忽略”。我该怎么做?strlen(str) == 0似乎不起作用。
int getLine(char str[]) {
int i = 0;
int c;
while (i < N - 1 && (c = getchar()) != EOF && c != '\n') {
str[i] = c;
++i;
}
if (c == EOF) return 0;
str[i] = '\0
目前,我正在阅读"C -编程语言“一书,我对这个练习有一个问题:
“编写一个程序'detab‘,用适当数量的空格替换输入中的制表符,直到下一个制表符止点。假设一个固定的制表符集,比如每个n-colmuns。n是一个变量还是一个符号参数?”
把我写的这个程序中的问题放在一边:
#include <stdio.h>
#define COLUMNS 5 /* number of columns for a tab */
int main()
{
char c;
int i;
while ((c = getchar()) != EOF) {
if
我试着用我的方式完成C编程语言书和练习1-21,在练习1-21中,你必须用适当数量的制表符和空格替换空白块,以相等于相同的空间,我能够正确地运行和编译所有东西,但是它总是在输出中放置错误数量的制表符和空格。
书中的实际问题是:
编写一个程序entab,将空格字符串替换为最小的制表符和空格数,以实现相同的间距。使用与detab相同的制表符。当一个制表符或一个空白足以到达制表符停止时,应该优先考虑哪个选项卡?
再一次,伙计们,我对编程还很陌生,所以请尽可能地描述。
if I input something like asdf asdf asdf
i get some
我正在学习C,学习“C编程语言”( the C Programming Language)- K&R;我发现自己陷入了对else if (state == OUT)角色的理解中
#define IN 1
#define OUT 0
main ()
{
int c, nw, state;
state = OUT;
nw = 0;
while ((c = getchar()) != EOF) {
if (c == ' ' || c == '\n' || c == '\t')
我试图理解这段代码,但我很困惑:我不能理解为什么需要三次getchar函数,我也不能理解程序什么时候使用那个getchar函数。代码运行得非常好,取自这里:
#include <stdio.h>
/* Exercise 1-13: Write a program to print a histogram of the lengths of words
in its input. It is easy to draw the histogram with the bars horizontal; a
vertical orientation is more challe
我在自学C,在K&R中工作,我做的是练习1-21:
编写一个Program,将空格字符串替换为制表符和空格的最小数量,以达到相同的间距。使用与detab相同的制表符。
我在做这个练习时遇到了困难,所以我在网上找到了一个解决方案,但我不明白。有人能解释一下这段代码是如何工作的吗?
#include<stdio.h>
#define TABINC 8
int main(void)
{
int nb,nt,pos,c;
nb = 0;
nt = 0;
for(pos=1;(c=getchar())!=EOF;++pos)
我是一个初露头角的C程序员,我写这个程序是为了计算第二版K&R 1.5.4的单词数。我的if语句有什么问题吗?代码似乎会在不应该递增的时候递增变量,因为它不符合初始测试。
#include <stdio.h>
#define IN 1
#define OUT 0
main()
{
int word, state, c;
word = state = OUT;
while((c = getchar()) != EOF)
{
if(c != ' ' || c != '\
因此,我尝试将2D字符串数组保存在一个文件中,并再次尝试加载它,就像当我重新打开我的程序时,它应该自动分配最后一个输入值。我遇到了一些麻烦,我希望有人能看看我的问题,并帮助我解决它,因为我在C++只是一个初学者。下面是我的代码: #include <iostream>
#include <fstream>
using namespace std;
//String Array To Store These boxes [ ] as values.
string arr[4][4]={{"[ ]","[ ]","[ ]
我目前正在学习/重新学习C语言。去年我在学校学习它时遇到了一些麻烦。我正在使用一本书,其中一个练习是要求获得过多的空间,并将它们转换为一个空间。问题是我不能让它识别标签。我已经在这里找到了一些,但它们都是处理数组的。我不能使用数组。这就是我到目前为止所拥有的。
int main()
{
int c;
c = getchar();
while (c != EOF)
{
if (c == ' ')
{
putchar(c);
for (c = getchar(); c
我刚接触C语言,正在编写一个充当计算器的程序,其中输入代码的每一行都以一个运算符开头,然后包含可能的空格、数字、更多的可能的空格和换行。我被指示使用getchar读取浮点数以外的所有内容,并使用scanf读取浮点数。
我不确定如何使用scanf读取混合在一行其他字符中的浮点数。下面的代码显示了while循环的大部分内容,其中还包括对其余字符的读取,但最相关的部分是最后3行。
while (1) {
int ic = getchar();
if (ic < 0)
break; //EOF
char temp = (char) ic;
我找到了这段代码:
#include <stdio.h>
#include <ctype.h>
int f(int c) {
static int b;
if (isspace(c))
return b = c & '\n';
f(getchar());
return putchar(c) == b && f(c);
}
int main(void) {
return f(0);
}
我想要了解这个代码是如何工作的,我从来没有见过这种类型的代码如此详细
从C/C++开发经验来看,python有点陌生。不是咆哮,而是缩进和间隔的东西正逐渐成为我生活的祸根。这就是问题所在。取此代码段,按顺序键入,不要在现有代码之间删除或插入任何编辑。
while condition:
line 1
line 2
line3 #outside the loop
它很好用。但是,假设我想在循环中添加另一个指令。(在Linux上使用jupyter记事本和崇高编辑),因此我将行添加为
while condition:
line 1
line 1.5
line 2
line3 #outside the loop
这就是问题开始的
我正在windows机器上用K&R书学习C。我正在尝试计算行、字符和单词的程序(bare bones Unix word count)。虽然这个程序正确地计算了字符的数量,但没有。输出中的行和单词总是0和1,不管我输入了什么。我也被这个节目的一部分搞砸了,接下来我要讲的是-
#include<stdio.h>
#define IN 1
#define OUT 0
int main()
{
int c,state, nc,nw,nl;
nl=nw=nc=0;
state=OUT;
while(c=getchar()!=EOF)
{
我正在尝试编写一个程序,从输入行中删除尾随空格/制表符(练习1-18从K&R)。
/* Write a program to remove trailing blanks and tabs from each
line of input, and to delete entirely blank lines. */
#include <stdio.h>
#define MAXLINE 1000
int gettline(char s[], int lim);
main()
{
int len, i;
char line[MAXLINE];
wh
#include<stdio.h>
#define max 3
struct t
{
char ch;
char cH;
int i;
};
int main()
{
struct t test[max];
int count=0,in=0;
while(count < max)
{
printf("Enter small char\n");
scanf("%c",&test[count].ch);
getchar();
我是个C编程新手,目前我正试图自学如何创建一个C程序,该程序可以计算输入流中的字数和行数,并将两个总数打印到标准输出。
我正在尝试做的是让程序计算输入流中的行数和字数。我希望有程序包括单词,但排除空白,制表符,换行符,连字符,或冒号。同时让程序以小数形式输出结果(单词和行)。
#include<stdio.h>
int main()
{
int iochar;
int words;
int lines;
printf("Enter something here:\n\n");
while ((iochar = getchar ()) !=EOF)
{
我正在用K&R学习C,除了书中的练习外,我也在自己做一些。我写了下面的代码,它是这样做的,它计算你的输入,给你反馈多少单词才能达到10个单词的“目标”,并在你到达10个单词时向你表示祝贺。
#include <stdio.h>
main()
{
/* This programm will read your input, check the number of words,
and will congratulate when you reach a value of 10 words*/
int c, nw, counter;
nw
我试图将一些int保存到从用户输入读取的数组中。我不知道每行int的数量,只知道行数,也就是该行上ints的最大数量。例如,如果这是5,那么用户应该输入5行带有int,每一行最多有5个元素。数值将是正的。我做错了什么?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int n;
scanf("%d",&n);
int array_row[n];
int i=0;
int noEnter=n;
//
我实现这段代码是为了获取no。字数很重要。它适用于所有单个字符,也就是说,如果我输入"q w r "作为输入,它会给出3个单词,但是当我输入"qwe ed df "作为输入时,它会显示2。
#include<stdio.h>
int main()
{
int c=getchar();
int words=0;
while(c!=EOF)
{
if(c==' ' || c=='\n')
{
我和埃尔姆混在一起,我收到了一条错误信息:
[1 of 1] Compiling Main ( Main.elm )
Parse error at (line 3, column 1):
unexpected '\t'
expecting newline, spaces or end of input
标签在Elm中是否有特殊的含义,就像在Python中那样?
例如,
main : Element
main = flow down
[ leftAligned (toText "A")
, leftAligned (
通过K&R的C编程语言,我为练习1-12编写了一段代码,对于所有的意图和目的似乎都是有效的。然而,我开始好奇如何调整它以适应跨越多行的更长的输入。我编写的当前程序一点击enter就会终止输入。是否有一种方法来调整程序,使输入只在我想要的时候终止,而不是通过换行符?这是我用的程序。
#include <stdio.h>
main()
{
int c;
while ((c = getchar()) != EOF)
{
if ( c == ' ' || c == '\n' || c == '\t&