当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

C语言怎么实现字符串的任意输入

更新:02-25 整理:39baobao.com
字体:

[C语言将输入整数转换成字符串输出]改你的代码真是太麻烦了,你看看哪些地方修改了吧。前面的define pow是编译器不同造成的。 #include #include int power(int a, int n) { return pow((double)a, n); } #defi...+阅读

#include#include#include#include#define GRAW_LENGTH 50 void AppendChar(char*& pBuf, int& nBufLen, char ch) { int nOldLen = pBuf ? (int)_mbstrlen(pBuf) : 0; if (nOldLen + 2 >nBufLen) { char* pNewBuf = (char*)malloc(nOldLen + GRAW_LENGTH); memset(pNewBuf, 0, nOldLen + GRAW_LENGTH); if (pBuf) { memcpy(pNewBuf, pBuf, nOldLen + 1); free(pBuf); } pBuf = pNewBuf; } pBuf[nOldLen] = ch; } int main(int argc, char* argv[]) { char ch; char* pBuf = 0; int nLen = 0; do { ch = getch(); printf("%c", ch); AppendChar(pBuf, nLen, ch); } while (ch != 13); printf("\n%s\n", pBuf); if (pBuf) free(pBuf); return 0; }

一个C语言字符串输入问题

int main() { char s[50],s1[50],*s2; gets(s); s2=gets(s1); printf("%s\n",s); printf("%s\n",s1); printf("%s\n",s2); short i; cin>>i; return 0; }

s1和s2是一样的

getc的原型

int getc( FILE *stream );

它是从文件流里面获取并返回下一个字符,如果到达文件尾返回EOF与fgetc是一致的

getchar 的原型

int getchar( void ); 从标准输入获取并返回下一个字符,如果到达末尾返回EOF

gets的原型

char *gets( char *str );

gets()函数从标准输入读取字符并把它们加载到str(字符串)里,直到遇到新行(\n)或到达EOF. gets()的返回值是读入的字符串,如果错误返回NULL.

C语言怎么用printf输出字符串

void main()

{

unsigned char *x = "ab,sdf,sad,23432,cc";

data = x;

printf("data = %c\n", *data);

printf("data = %s\n", data);

system("pause");

}

扩展资料:

printf输出字符串的一些格式

1、原样输出字符串:printf("%s", str);

2、输出指定长度的字符串, 超长时不截断, 不足时右对齐:printf("%Ns", str);

注:N 为指定长度的10进制数值

3、输出指定长度的字符串, 超长时不截断, 不足时左对齐:printf("%-Ns", str);

注:N 为指定长度的10进制数值

4、输出指定长度的字符串, 超长时截断, 不足时右对齐:printf("%N.Ms", str);

注:N 为最终的字符串输出长度

M 为从参数字符串中取出的子串长度

5、输出指定长度的字符串, 超长时截断, 不足时左对齐是: printf("%-N.Ms", str);

注:N 为最终的字符串输出长度

M 为从参数字符串中取出的子串长度

参考资料来源:printf百科

C语言输入输出字符串

char ch[5]表示的是定义了一个字符数组(即字符串),数组单元有5个,每个单元都是字符型,由于字符串是用\0作结束的,5个单元的字符数组实际上能完整存储的只能是长度不超过4个字符的字符串,多了的话就要占用其他单元了(这些单元有可能会被系统分配给其他变量,而能够用来存储字符串的就是你定义的这5个单元的字符数组),可能会出现溢出,也就是有时候会出现输出的字符串后面有乱码

char ch表示定义了一个字符变量,用scanf为其赋值的话应该用%c,即scanf("%c",&ch),它只能表示一个字符

char ch[]数组定义不允许[]里为空

char ch[1]表示的也是一个字符数组,所以你可以输入字符串,同样随便输入就有可能溢出

本文地址:https://www.39baobao.com/show/29_46738.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

求用C语言实现整数转变为字符串的程序#include <stdlib.h> #include <stdio.h> int main(void) {int number; char string[25]; scanf("%d",&number); itoa(number, string, 10); printf("integer = %d string = %s...

如何用C语言实现动态的字符串数组分成取数字与取非数字2个函数较简单。get_v()取数字, get_o()取非数字。 #include <stdio.h> char *get_v(char *a, char *b){ int i=0; while( a[i]>='0' & a[i]<='9') {b[i]=...

如何用c语言实现:在主函数中输入一个字符串调用函数将其中的所#include void p(char[]); int main(void) { char a[100]; gets(a); p(a); printf("%s\n",a); return 0; } void p(char a[]) { int i,j; for(i=0;a[i+2];i++) if(a[i]=='a'&a...

用C语言实现下面的功能 1用户输入长度不超过50的任意整型数据并#include#include#define OVERFLOW -1 #define OK 1 #define ERROR 0 typedef int Status; typedef char TElemType; typedef struct BiTNode { TElemType data; struct BiT...

c语言如何连续输入多个字符串使用for循环啊,但是前提是要设定好输入的组数,如下面的代码,思路就是动态创建,因为不知道要输入的字符串有多长,但是不能大于temp的大小。 如果不限定大小的话,那么只能一个个创建...

c语言中怎么连续输入几个字符串楼主应该是问怎样输入有空格的字符串吧!输入有空格的字符串有2种方法 1、使用gets函数 Eg:char s[100];gets(s); 2、利用scanf的%[]格式控制符 Eg:输入I love you!#include "st...

C语言多组字符串输入。以空行结束怎么做到可以先判定数组第一个元素是否为结束符'\0'是的话,就跳出循环 可能为写的与你的要求有点出入,我写的是输入一个空格,回车才终止输入 直接按回车是没效果的。 #include <iostrea...

C语言键盘输入字符串急!简单地可以这样来: //--------------------------------------------------------------------------- #include <stdio.h> int main(void) { char a[10][80];/*有10个字符串,...

用c语言中递归调用的方法编写实现:输入的一行字符逆序输出#include <stdio.h> void reverse(char *s) { if (*s) { reverse(s+1); putchar(*s); } } void main() { char a[256]; gets(a); reverse(a); printf("\n"); }...