c语言-【C语言】用scanf赋值给带指针的字符串

问题描述

【C语言】用scanf赋值给带指针的字符串

我希望是输入几个单词之后,这几个单词成为一个字符串,但是变异之后仍然有问题。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char *argv[])

{
int n;
printf("Number of words: ");
scanf("%d", &n);
const char *words[n];
int i;
for (i = 0; i < n; i ++)
{
    printf("Enter word: ");
    scanf("%s", words[i]);
}

我是在OS X里面用的gcc,问题如下:
guessword.c:16:15: warning: format specifies type 'char *' but the argument has
type 'const char *' [-Wformat]
scanf("%s", words[i]);
~~ ^~~~~~~~
%s
1 warning generated.

解决方案

const 修饰的不能修改

时间: 2024-08-01 12:00:29

c语言-【C语言】用scanf赋值给带指针的字符串的相关文章

图片-C语言 a[0] 数组首地址只能给指针赋值吗 (a代表某数组)

问题描述 C语言 a[0] 数组首地址只能给指针赋值吗 (a代表某数组) 如果不是的话,为什么下面的代码会出错: 解决方案 因为类型不同,min是int类型,而&a[0]是int * 类型 解决方案二: 把 int mix=&a[0]; int max=&a[0]; 改成 把 int *mix=&a[0]; int *max=&a[0]; 就好了.另外,单词拼错了,最小值是min不是mix. 解决方案三: a[0]是值,&a[0]是数组首地址,加&报

「C语言回顾之旅」第一篇:指针详解

说明:     最近学校课程开设了<数据结构>的课程,无疑,数据结构的重要性在IT生涯的进阶路上是不可置疑的,也常说,数据结构是专业性与非专业性的分界线.所以无论以后走的是什么方向,毕竟是读计算机专业的,所以必须学好数据结构的.虽然目前我给自己定的方向是走运维/系统架构方向的,可有句话说得好,不懂开发的运维注定会被淘汰,在IT这一行,要让自己变得更加强大.最近也一直在学Python,感觉还不错,学数据结构相信对自己也肯定有好处的,对一些较为底层的知识有些了解和理解,这样才能走得更远!     

理解C语言——从小菜到大神的晋级之路(8)——数组、指针和字符串

       本期视频点击这里        在前面几次我们接触的数据类型都是简单数据类型,使用一个数据个体表示一个元素.C语言中还提供了多种复杂数据类型,其中最简单的一种就是数组.数组这一结构使用内存中一段连续的内存空间保存一组相同类型的变量,这些变量通过数组的下标/索引的不同相互区分.数组与指针有着十分紧密的联系,通常使用数组下标能实现的操作都可以使用指针完成,而且使用指针的程序通常效率更高.但是指针和数组也存在着一些明显的差别,如果误用将导致错误.另外,C语言中还定义了一种极为常用的特殊的

c语言-C语言指针,字符串复制过程的问题

问题描述 C语言指针,字符串复制过程的问题 下面是字符串复制的代码,str1[]如果限定大小为10,则会溢出,结果是s2正常,s1输出为 u? 请问为什么是这个结果呢? #include #include int main(){ char *s1; char *s2; char str[] = {""How are you?""}; char str1[10]={}; s1 = str; s2 = str1; while ((*s2 = *s1) != ''){ s

c语言-C语言关于字符指针变量和字符数组的说法

问题描述 C语言关于字符指针变量和字符数组的说法 下列关于字符指针变量和字符数组的说法错误的是 A)字符指针变量的值可以变化 B)字符数组的值可以变化 C)字符指针变量代表了一个地址 D)字符数组代表了一个地址 ====答案选B,求解释? 解决方案 选择B.字符数组相当于指针常量. 解决方案二: 数组定义时系统给开辟内存单元,数组名相当于数组的开始地址是不能变化的 解决方案三: C语言字符指针和字符数组C语言中,为什么字符串可以赋值给字符指针变量字符数组和字符指针

C++ Primer 第一部分基本语言_C 语言

第1章 快速入门 1,介绍main函数的意义和其基本结构,return语句.不同平台下编译与执行程序.2,两个类isrteam与otream与它们的实例对象cin,cout,cerr,clog.说明了程序中基本的输入与输出."<<"与">>"作为操作符,左操作符是一个iostream 对象,右操作符是一个变量.返回值仍为一个iostream对象,所以输入或输出可以这样 cout<<"a="<<a&l

win7如何更改语言 电脑语言改成英文的方法

今年evad3rs团队发布的iOS 7完美越狱工具有些特殊,中国版iOS7完美越狱工具中,捆绑有太极助手插件,此插件类似流氓插件,容易导致iOS越狱设备出现白苹果现象(国外版无此插件).目前比较好的解决办法是:在使用电脑中越狱的时候,将电脑语言改为英文,可绕过该插件.但很多电脑小白用户还不知道如何更改电脑语言,因此本文将为大家详细介绍下电脑语言更改教程. 如何更改电脑语言 电脑语言改为英文方法 以下笔者以Windows 7系统截图演示,教大家如何更改电脑语言.其他XP或者Win8系统设置方法与此

C语言 socket 如何发送带指针的结构体?

问题描述 C语言 socket 如何发送带指针的结构体? 发送一个带指针的结构体,我知道怎么发送? 先把结构体转换成字符串,然后发出.但是接收的时候,怎么接收到结构体中?thanks! 解决方案 发送: struct f;char *ffff[sizeof(f)];memcpy(ffff &f sizeof(f)); 接收: struct f; ffff为收到的数据 memcpy(&f ffff sizeof(ffff)); 解决方案二: C语言---结构体指针C语言--结构体中的指针C语

【c语言】2维数组求平均值,指针出问题了

问题描述 [c语言]2维数组求平均值,指针出问题了 double average(double (*p)[],double *q,int n,int m) { int i,j; double NU,AE;//每列总和与每行总和 for(i=0;i<n;i++) { for(NU=0,j=0;j<m;j++) { NU+=(*p+i)[j];//每列的和 } q[i]=NU/m;//每行的平均值 AE+=NU;//每行的和 } return AE/(n*m);//总平均值 } 第一行的平均值没错