
#include<stringh>
int main()
{
char para[100];
int i,k;
/scanf("%c",para);//%c是单个字符。。。
k=scanf("%c",para);
while(k!=EOF)
scanf("%c",para);
printf("the input words: \n");
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("\n");
return 0;
}
试试上述代码,我调试过了。。。。
大哥哥啊,'\0'是不可输入字符呀,你可以改成别的asscii码,比如'\n',还有啦,看看你for后面的分号,编译运行下小弟给的代码。#include<stdioh>
int
main()
{
char
string[100];
int
i;
printf("enter
a
string:");
for
(
i=0;scanf("%c",&string[i]),string[i]!='\n';i++);
for
(
i=0;string[i]!='\n';i++)
printf("%c",string[i]);
printf("\n");
return
0;
}合乎要求吧,不过你想把回车也读进去,就用EOF,记得用ctrl+c结束哦用fgets就可以了
原型是char
fgets(char
s,
int
n,
FILE
stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL
char
t[100];
fp=fopen("file","r");
fgets(t,81,fp);
//从fp文件中读入80个字符,如果遇到回车或不足80个,就结束读取
1、打开VS新建一个Windows窗体应用程序,命名为CharToArray。
2、在新建项目中的Form1窗体上,加上两个Label和两个文本框 以及一个按钮,分别命名为:请输入字符串,转换的数组:按钮名称为“转换”。
3、双击Button按钮,在click里面编辑一下代码。首先在文本框输入一个字符串,然后把字符串拆分为数组,存到文本框txtArray里面。
4、点击生成,运行程序,在d出的界面中,输入字符串,然后点击转换。
5、把字符串的值一个一个赋值到数组中,我们也可以把字符串中的一个或者多个值,拆分为一个值,赋值到数组中。
6、此时我们需要判断字符串的长度,若是开始的索引,到最后,没有两个字符,那就需要复制为一个字符了。
正读:scanf("%s",a+1); 这样就从a[1]开始倒读:for(int i=N-1;i>0;i--) //N是你数组的长度或者比数组长度小的常
{ //量,i>0也就是到a[1]结束
scanf("%c",a+i); //因为倒过来,所以一个一个元素往里放
}
a[N]='/0'; //别忘了数组最后一个元素是0
理解scanf()的运作方式:每次输入都从缓冲区读取一定的内容
比如如果是%c,那么从缓冲区读取1个字节如果你输入了"abcd"那么先把'a'放进去,然后第二次循环把'b'放进去以此类推
标准C中没有提供这样的函数,可以自定义一个这样的函数,以实现getline()函数的功能。参考代码如下:
int get_str( char s, int size, const char ch='\n' ) //如果不输入第三个参数,默认为回车符{
int i;
for( i=0;i<size-1;i++ )
{
s[i]=getchar(); //读入一个字符
if ( s[i] == ch ) //遇到指定字符,结束输入
break;
}
s[i]='\0'; //字符串结束符
return i; //返回读入字符串数据的长度
}
void main()
{
char str[10];
get_str( str, sizeof(str), '#' ); //以#结束
printf("input is :%s\n", str );
fflush(stdin); //清除缓存中的残余数据
get_str( str, sizeof(str) ); //以回车结束
printf("input is :%s\n", str );
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)