精华内容
下载资源
问答
  • 问题描述从文件每次读入一行字符串,并把这些字符串添加到字符串数组中测试文件rwq.txthellojjjjjddddd44444lhellohellojjjjjdddddjjjjjddddd实现读入一行之后需要处理末尾的\n,改成\0使用char* 数组来表示二维char...

    问题描述

    从文件每次读入一行字符串,并把这些字符串添加到字符串数组中

    测试文件rwq.txt

    hello

    jjjjj

    ddddd

    44444l

    hello

    hello

    jjjjj

    ddddd

    jjjjj

    ddddd

    实现

    读入一行之后需要处理末尾的\n,改成\0

    使用char* 数组来表示二维char数组

    #include

    #include

    int main()

    {

    FILE * pFile;

    char mystring [100];

    char* res[999]; //store final result

    int p=0; //pointer of res[]

    pFile = fopen ("rwq.txt" , "r");

    if (pFile == NULL)

    perror ("Error opening file");

    else {

    while ( fgets (mystring , 100 , pFile) != NULL ) //read a line every time

    {

    int len = strlen(mystring);

    if(mystring[len-1]=='\n')

    mystring[len-1] = '\0';

    char* tmp = (char*)malloc(100*sizeof(char));

    memcpy(tmp,mystring,len);//usage memcpy(dest, src, strlen(src));

    res[p++] = tmp;

    //puts (mystring);//put string every time

    }

    fclose (pFile);

    // int re_len = sizeof(res)/sizeof(res[0]);//wrong way to get arry lenth

    // printf("%d\n",re_len);

    for(int i=0;i

    printf("%s\n",res[i]);

    }

    return 0;

    }

    REF

    一维数组每次添加一个elements

    char* s = "hello";

    int n = strlen(s);

    char a[100];

    for (int i=0;i

    {

    a[i]=*(s++);

    }

    展开全文
  • 从文件每次读入一行字符串,并把这些字符串添加到字符串数组中 测试文件rwq.txt hello jjjjj ddddd 44444l hello hello jjjjj ddddd jjjjj ddddd 实现 读入一行之后需要处理末尾的 \n ,改成 \0 使用char...

    问题描述

    从文件每次读入一行字符串,并把这些字符串添加到字符串数组中

    测试文件rwq.txt

    hello
    jjjjj
    ddddd
    44444l
    hello
    hello
    jjjjj
    ddddd
    jjjjj
    ddddd
    

    实现

    • 读入一行之后需要处理末尾的\n,改成\0
    • 使用char* 数组来表示二维char数组
    #include <stdio.h>
    #include<string.h>
    int main()
    {
        FILE * pFile;
        char mystring [100];
        char* res[999];    //store final result
    
        int p=0;    //pointer of res[]
        pFile = fopen ("rwq.txt" , "r");
        if (pFile == NULL)
            perror ("Error opening file");
        else {
            while ( fgets (mystring , 100 , pFile) != NULL )    //read a line every time
    
            {
                int len = strlen(mystring);
                if(mystring[len-1]=='\n')
                    mystring[len-1] = '\0';
    
                char* tmp = (char*)malloc(100*sizeof(char));
                memcpy(tmp,mystring,len);//usage memcpy(dest, src, strlen(src)); 
                res[p++] = tmp;
                //puts (mystring);//put string every time
            }
            fclose (pFile);
    
        //  int re_len = sizeof(res)/sizeof(res[0]);//wrong way to get arry lenth
        //  printf("%d\n",re_len);
        for(int i=0;i<p;i++)
          printf("%s\n",res[i]);
        }
        return 0;
    }
    

    REF

    char* s = "hello";  
    int n = strlen(s);  
    char a[100];  
    for (int i=0;i<n;i++) 
    {   
      a[i]=*(s++);  
    }
    

    转载于:https://my.oschina.net/SnifferApache/blog/673700

    展开全文
  • 7-3字符串排序 (20分) 本题要求编写程序,读入5个字符串,按由小到...每行一字符串 输入样例: red yellow blue green white 输出样例: After sorted: blue green red white yellow #include<stdio.h> #

    7-3字符串排序 (20分)

    本题要求编写程序,读入5个字符串,按由小到大的顺序输出。

    输入格式:

    输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。

    输出格式:

    按照以下格式输出排序后的结果:

    After sorted:
    每行一个字符串

    输入样例:

    red yellow blue green white

    输出样例:

    After sorted:
    blue
    green
    red
    white
    yellow

    #include<stdio.h>
    #include<string.h>
    int main()
    {
    	char str[5][100] = { 0 };
    	char tem[100];
    	for (int i = 0; i<5; i++)
    	{
    		scanf("%s", str[i]);
    	}
    	for (int i = 0; i<4; i++)
    	{
    		for (int j = 0; j<4 - i; j++)
    		{
    			if (strcmp(str[j], str[j + 1])>0)
    			{
    				strcpy(tem, str[j]);
    				strcpy(str[j], str[j + 1]);
    				strcpy(str[j + 1], tem);
    			}
    		}
    	}
    	printf("After sorted:\n");
    	for (int i = 0; i<5; i++)
    	{
    		printf("%s\n", str[i]);
    	}
    	return 0;
    }
    

    冒泡排序即可,不过不同的一点是,字符串交换要用strcpy和strcmp,想数一样用=是不匹配的

    展开全文
  • 而cin是使用空白(空格,制表符和换符)来定字符串的界的。 这就导致了对于带有空格的字符串,比如”I Love C++奋斗乐园论坛” 只能读入”I”,后面的都无法读入。 这时怎么办?  .对于字符数组: 方法:...

    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
    string st;
    getline(cin,st);
    cout<<st;

    来源:https://zhidao.baidu.com/question/182143987.html



    大家在学习C++编程时,一般在输入方面都是使用的cin.
    而cin是使用空白(空格,制表符和换行符)来定字符串的界的。
    这就导致了对于带有空格的字符串,比如”I Love C++奋斗乐园论坛”
    只能读入”I”,后面的都无法读入。
    这时怎么办?

     一.对于字符数组
    方法一:getline()
    读入整行数据,它使用回车键输入的换行符来确定输入结尾。
    调用方法: cin.getline(str, len);
    第一个参数str是用来存储输入行的数组名称,第二个参数len是要读取的字符数。

     

    复制代码
     1 #include <iostream>
     2 using namespace std;
     3  
     4 int main()
     5 {
     6     char str[30];
     7     cin.getline(str, 30);
     8     cout << str << endl;
     9     return 0;
    10 }
    复制代码

     

     

     

    方法二:get()

    调用方法:cin.get(str, len);

     

    复制代码
     1 #include <iostream>
     2 using namespace std;
     3  
     4 int main()
     5 {
     6     char str[30];
     7     cin.get(str, 30);
     8     cout << str << endl;
     9     return 0;
    10 }
    复制代码

     

     

     

    那么两者有何区别?
    两者都读取一行输入,直至换行符。
    然后,getline将丢弃换行符,而get()将换行符保留在输入序列里
    所以,再使用cin.get()输入多行数据时,中间可以使用get()消除换行符。

     

     

     

    复制代码
     1 #include <iostream>
     2 using namespace std;
     3  
     4 int main()
     5 {
     6     char str1[30], str2[30];
     7     cin.get(str1, 30);
     8     cin.get();
     9     cin.get(str2, 30);
    10     cout << "str1: " << str1 << endl;
    11     cout << "str2: " << str2 << endl;
    12     return 0;
    13 }
    复制代码

     

     

     

    因为get(str, len)和get()都是cin的类成员,所以可以合并起来写:

     

    复制代码
     1 #include <iostream>
     2 using namespace std;
     3  
     4 int main()
     5 {
     6     char str1[30], str2[30];
     7     cin.get(str1, 30).get();   // 注意这里!
     8     cin.get(str2, 30);
     9     cout << "str1: " << str1 << endl;
    10     cout << "str2: " << str2 << endl;
    11     return 0;
    12 }
    复制代码

     

     

     

     

    (欢迎大家去我论坛学习:C++奋斗乐园: www.cppleyuan (dot) com)

    二.对于string类
    方法一:getline(cin, str)

    这说明这里的getline不是类方法。

     

     

    复制代码
     1 #include <iostream>
     2 #include <string>
     3 using namespace std;
     4  
     5 int main()
     6 {
     7     string str;
     8     getline(cin, str);
     9     cout << str << endl;
    10     return 0;

    11 }


    原文:http://www.cnblogs.com/tanky_woo/archive/2010/08/31/1813455.html

    展开全文
  • C语言-判断回文字符串(二)

    万次阅读 多人点赞 2018-12-15 23:42:01
    输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。 输出格式: 输出在第1行中输出字符串。如果它是回文字符串,在第2行中输出Yes,否则输出No。 输入样例1: level 输出样例1: level Ye.....
  • 输入在一行中给出一个不超过80个字符、并以回车结束的字符串。 输出格式: 输出在一行中给出替换完成后的字符串。 输入样例: Only the 11 CAPItaL LeTtERS are replaced. 输出样例: Lnly the 11 XZKRtaO OeGtVIH ...
  • C语言存放多个字符串

    千次阅读 多人点赞 2018-08-16 14:15:52
    存放字符串 1.字符指针:char *str="hello"; 2.字符数组:char str[ ]="hello"; 存放多个字符串 1.二维字符串数组: char name[4][10]={"Hello","Word","I&...
  • 、字符处理函数二、字符串处理函数 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 ...
  • C语言】09-字符串

    2014-03-03 10:32:45
    字符串简介二、字符串的初始化三、字符串的输出 四、字符串的输入五、字符串数组 说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有...
  • C语言-读入含空格的字符串

    千次阅读 2020-09-26 08:03:01
    输入一行字符,统计其中英文字母、空格、数字和其它字符的个数。 思路 没说到底输入几个字符,无法用循环给数组赋值 解决: 定义足够大的数组,然后以%s为输入格式,一次性输入字符。然后再通过访问数组的每个元素...
  • c语言字符串是以空字符(\0)结尾的char数组。1、字符串的表示1、字符串常量:指用双引号中的任何字符。在双引号里面的字符编译器会自动提供\0字符。 字符串常量属于静态存储类。静态类存储是指如果个函数中...
  • 各种格式的文件用什么软件打开.$$$TemporaryFile)Q7?...{9f4f.$$FOS/2Database用c语言如何读入并使文本文件按某列排序输出?你可以酱紫: # include int main(void){ FILE *p;//文件指针 char ch[1000];/...
  • 这种方式,是直接用 scanf,这样读字符串的话,是从第个字符读起,然后读至 空格、制表符、换符 停止,是最简单的方法,也比较常用。 第二种方式: scanf("%[^\n]*c",str); 这种读入方法,是会吃整行的...
  • C语言从stdin读取一行字符串的几种方法 1.gets gets函数的头文件是<stdio.h>,原型如下: char *gets(char *s); gets从stdin中读入一行内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回...
  • C语言输入和输出字符串的三种方式

    千次阅读 2019-03-01 21:46:32
    C语言没有string类型,只能用字符数组保存字符串,当字符数组为维时,可以当做是“字符串”,二维时,为“字符串数组”,即多个字符串。 2、字符串的读取 (1)scanf和printf fgets的官方函数声明是: char * ...
  • C语言---读入字符串

    千次阅读 2013-04-05 14:45:00
    1、读入字符串可以使用以下方法: char str[20]; scanf("%s",str);   char str[20]; gets(str);   char str[20]; fgets(str,20,stdin);   char* str=readline(NULL); ... free(str); 以上方法都可以用于...
  • 读入一行字符串(不多于800个字符,以回车结束),统计其中Bubble出现了多少次 输入样例 Bubble if only Bubble. 输出样例 2 思路:利用寻找字符串,来判断出现的次数。不同于上一题,如果找到这个单词之后,需要...
  • gets(str)函数和scanf("%s",str)区别: ...功能为: 1、 gets功能为读入一行,并将换行符转换为字符串结束符。 2、 scanf("%s",s);读入时,遇到空白字符,包括空格,制表符,换行符时均会停止输入。 从功...
  • 题目:读入一字符串str,输出字符串str中的连续最长的数字串 输入描述: 个测试输入包含1个测试用例,一个字符串str,长度不超过255。 输出描述: 在一行内输出str中里连续最长的数字串。 示例1 输入 abcd...
  • C语言: 1、gets()和puts() 用法: gets(line);puts(line); 其中,line是字符数组(注:C语言中没有独立定义字符串的变量...(2)如果读入一行字符串长度超过字符数组定义的长度,会出现警告; (3)用gets...
  • #include <stdio.h> #include <stdlib.h>...//emp是打印回车的次数 如果开头有空格 那么第次遇到字母不打印回车 while(fflush(stdin),gets(a)) { for(i=0; i<200; i++) { if(a[...
  • C语言字符串

    2017-07-23 14:47:42
    C语言字符串 字符串定义 字符串的输入输出 字符串函数 字符串杂项 字符串定义 字面量定义 字符串数组定义 字符串指针定义 字面量定义 字符串的字面量定义也就是常说的字符串常量定义,形如以下形式: “hello c ...
  • 输入一行字符,统计其中有多少个单词,单词之间用空格分开 输入样例: I want to be a postgraduate. 输出样例: There are 6 words in this line. 解题思路: 采用空格统计单词的方法:空格出现的次数(连续的若干...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,433
精华内容 11,373
关键字:

c语言读入一行字符串

c语言 订阅