c语言-C语言利用指针来存输入的字符串的问题

问题描述

C语言利用指针来存输入的字符串的问题
这个函数是可以得到str的:                        #include <ctype.h>            char * getword(char * str)            {                    int i;                    int ch;                    while ((ch = getchar()) != EOF && !isspace(ch))                            *str++ = ch;                    *str = '';                    if (ch == EOF)                            return NULL;                    else                    {                            while (ch != '
')                                    ch = getchar();                            return str;                    }            }

但是把上面的单独拿出来就不能用的,如果定义str是数组,然后ch一个个存进去又是可以实现:
#include
int main(void)
{
char * str;
char * tmp;
int chi;

                tmp = str;                while ((ch = getchar()) != EOF && ch != '
')                    *str++ = ch;                *str = '';                puts(tmp);                return 0;            }

解决方案

关键词——函数中参数的释放

解决方案二:
C语言中关于字符串的输入问题

解决方案三:
因为你第一个返回的是指向字符串的最后一个字符的指针,所以根本没用

时间: 2024-08-30 15:19:08

c语言-C语言利用指针来存输入的字符串的问题的相关文章

编程c语言-c语言操作试题 答案看不懂

问题描述 c语言操作试题 答案看不懂 规定输入的字符串中只包含字母和*号.编写函数fun,其功能是:除了字符串前导和尾部的*号外,将串中其他的*号全部删除.形参h已指向字符串中第一个字母,形参P指向字符串中最后一个字母.在编写函数时,不得使用C语言提供的字符串函数. 例如,若字符串中的内容为"****A*BC*DEF*G*******",删除后,字符串中的内容应当是"*****ABCDEFG********". 注意:部分源程序给出如下. 请勿改动主函数main和其

c语言,形参是指针的引用,和形参是指针,两者结果不同,求指点

问题描述 c语言,形参是指针的引用,和形参是指针,两者结果不同,求指点 自定义的头文件 typedef struct BiTNode { int data; struct BiTNode *lchild, *rchild; }BiTNode, *BiTree; 如下是使用形参是指针的引用的函数,结果是正确的 #include "BiTree.h" #include "stdlib.h" #include "stdio.h" bool Delete

函数指针 c语言 指针-C语言指向函数的指针的调用

问题描述 C语言指向函数的指针的调用 int *d_bubblesort(int a[]int n)//数组长度为n的冒泡降序排序{int ij;int temp;for(i=0;i {for(j=n-1;j>i;j--){if(a[j]>a[j-1]){temp=a[j-1];a[j-1]=a[j];a[j]=temp;} }}return(a);} void main(){int i;int *p;int a[10]={65412398710};int (*fun)(intint);fun

c语言-C语言结构体的指针问题。

问题描述 C语言结构体的指针问题. struct GenInfo { uint64_t (*next)(struct GenInfo * const); enum GeneratorType type; union { struct GenInfo_Constant constant; struct GenInfo_Counter counter; struct GenInfo_Discrete discrete; struct GenInfo_Exponential exponential;

c语言 排序题(指针) 指针我学的不是很好,请问我的代码哪里有问题?

问题描述 c语言 排序题(指针) 指针我学的不是很好,请问我的代码哪里有问题? 描述 将输入的四个整数按由大到小的顺序输出. 已定义如下swap函数,可实现形参pa和pb所指内存单元的内容交换.请务必使用本函数实现两个变量内容的互换. void swap( int *pa, int *pb) { int t; t=*pa; *pa=*pb; *pb=t; } 输入 输入包含多组数据,每组输入4个整数,用空格隔开. 输出 根据每组输入,输出排序后的4个整数,由空格隔开.输出占一行. 样例输入 4

struct-C语言结构体变量指针问题,求助

问题描述 C语言结构体变量指针问题,求助 #include #include #include #define N 10 typedef struct { char name[10]; double price; struct { int year;int month;int day ;}date; }STREC; int fun(STREC a,double p) { int i,j=0; double q; for(i=0; i < N ; i++,a++) { q=a->price; i

malloc-C语言中的字符指针操作问题,如何释放字符指针空间?

问题描述 C语言中的字符指针操作问题,如何释放字符指针空间? 源码如下: #include #include #include void main() { char s1; char *s2 = "bbb"; char *s3 = "ccc"; s1 = (char)malloc(sizeof(s2)); strcpy(s1, s2); strcat(s1, s3); //free(s2); //free(s3); printf("%s ", s

c语言 计算机二级 字符指针

问题描述 c语言 计算机二级 字符指针 我认为该选c,但标准答案给的a 求解啊 解决方案 #include <stdio.h> int main() { char a[] = "china", *p; p = a; printf("%c %c ", *p, a[0]); //c c 两值相等 C也是对的 printf("%p %p ", p, a);//0x7fffcdfc9220 0x7fffcdfc9220 我觉得A不是对的,虽然

c语言结构体中指针数组怎样赋值

问题描述 c语言结构体中指针数组怎样赋值 定义一个结构体struct AS{ char *p[1]:}:怎样用gets函数给指针数组赋值呢? 解决方案 看Unix/Linux上的man: Standard C Library Functions gets(3C)NAME gets fgets - get a string from a stream SYNOPSIS #include char *gets(char *s); char *fgets(char *s int n FILE *str