c语言读入字符串
❶ C语言中怎么输入字符串并从中逐一读取字符
#include<stdio.h>
#include<string.h>
intmain()
{
charpara[100];
inti,k;
/*scanf("%c",para);//%c是单个字符。。。
k=scanf("%c",para);
while(k!=EOF)
scanf("%c",para);
printf("theinputwords: ");
for(i=strlen(para);i>=0;i--)
printf("%c",para[i]);
*/
i=0;
scanf("%c",¶[i]);
while(para[i]!='-')//以输入-(负)号为字符串输入的结束符
{
i++;
scanf("%c",¶[i]);
}
k=i;//k是字符串的长度
for(i=k-1;i>=0;i--)//字符串的倒序输出
printf("%c",para[i]);
printf(" ");
return0;
}
试试上述代码,我调试过了。。。。
❷ 怎么用C语言读取 TXT文件中的字符串
1、首先我们打开电脑里的VS软件,使用VS新建空工程,直接点击确定。
❸ C语言中读取一个字符
getch和getche都是读入单个字符的,不同的是getch不会将读书的输出来,而getche就会再把它输出到屏幕上。
比如你用getch读入,按了键以后屏幕上没有输出,但是实际上已经读入了。而getche会把你刚按的再输出来。
getchar则是读入字符串的。
❹ C语言空白字符读取问题
当我们读取字符或者字符串时,有时会遇到烦人的空白字符问题。因为结果很奇怪,为什么明明程序看起来没有错,但是结果读取到的值却是空的呢?下面我们来仔细分析一下。
在一个程序中连续读取多个变量时,如果最后一个是字符类型( char )的话,那么你一定要注意。
scanf() 倾向于遗留下它“扫视”过但未读取的字符(包括换行符和陆哗)。比如下面的程序:
在读入i的同时,scanf函数调用将会留下没有消耗掉的任意字符,包括(但不限于)换行符。 getchar() 或者 scanf("%c", ...) 将在随后取回第一个剩余字符,但这不是我们所希望的结果。
上述问题的解决方法之一就是可以在读取字符之前,先确保前面没有换行符。
上面的方法只是针对换行符,但是如果是其他空白字符的话,就有些麻烦了。在C标准库中有一个函数可以用来检测空悉袜白字符,我们需要包含头文件 ctype.h 。
假如我们要读取一行字符串,很多人都会采取类似于下面的方法:
NOTE: 注意这里 ch 以及前面的 command 变量都为 int 类型,原因是 getchar() 函数实际上返回的是 int 类型,之所以这样设计是为了适应 EOF 这个特殊值。当这些函数读取出错或者读完文件后,会返回 EOF 。 EOF 是一个宏,标准规定它的值必须是一个 int 型的负数常量。
上述方法看似没有任何问题,而且确实是没有问题。但是在某些情况下,上面的函数就会出现问题。假如在读入字符串之前,我先读入了某个变量并按下回车符或者其他空白字符,这时使用上面方法将什么也读不到或者读到的唤行值开头将是空白字符。
原因很简单, read_line() 函数中 while 循环结束的条件是读到换行符,如果前一次读取遗留下某些空白字符就会影响到后面的 read_line() 读取。
解决的方法很简单,下面是新的 read_line() 函数:
我们同样使用了问题一中的 isspace() 函数。表达式 isspace(ch = getchar()) 控制第一个字符,把读入的字符存储在 ch 中,然后使用 isspace() 函数判断 ch 是否是空白字符。如果不是,循环终止, ch 中包含一个非空白字符。
❺ C语言如何从字符串中读入字符
在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能读取一个单词,而不是整行字符串。
其实scanf函数也可完成这样的功能,而且还更强大。这里主要介绍一个参数,%[],这个参数的意义是读入一个字符集合。[]是个集合的标志,因此%[]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是"^",这说明读取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止。注意此时读入的字符串是可以含有空格的,而且会把开头的空格也读进来。