佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

搜索
查看: 1065|回复: 7

如何将名编入?

[复制链接]
发表于 1-12-2009 09:41 PM | 显示全部楼层 |阅读模式
各位大大,我想请问一下如何将号码转成名
例如
int num;

printf("Please enter customer name:\n");
scanf("%d",num);
1.Simon
2.mama
3.popo



我input 1 然后显示Simon这个名?
不是printf。。我想将它变成可用在别处。。
报慊。。如果不明。。小弟刚学c++
回复

使用道具 举报


ADVERTISEMENT

发表于 2-12-2009 12:05 AM | 显示全部楼层
这是c language 吧?

如果你想要把simon用在别处,你需要把它储存进string variable。
好像simon是5 characters, so
char customerName[15];

if(num == 1)
{
     customerName = "simon";
}
else if(num == 2)
{
     customerName = "mama"
}
....

printf("customer name is %s", customerName);

p.s. 如果syntax有错原谅,很久没动c language了。
回复

使用道具 举报

 楼主| 发表于 2-12-2009 12:28 AM | 显示全部楼层

回复 2# i-counsellor 的帖子

谢谢回复。。是大约这样。。不过有error。。


    printf("Enter choice of pizza:\n";// the choice of pizza
    fflush(stdin);
    scanf("%d", &piz_type);
    if(piz_type ==1)
    {
        piz_name = "EPPERONI";
    }
    else if (piz_type ==2)
    {
        piz_name = "SEAFOOD";
    }
        else if (piz_type ==3)
    {
        piz_name = "VEGETABLE";
    }
        else if (piz_type ==4)
    {
        piz_name = "HAWAIIAN";
    }
        else if (piz_type ==5)
    {
        piz_name = "MIXEDCOMBO";
    }

error C2440: '=' : cannot convert from 'char [10]' to 'char [20]'
        There is no context in which this conversion is possible

[ 本帖最后由 JunL 于 2-12-2009 02:11 AM 编辑 ]
回复

使用道具 举报

发表于 2-12-2009 10:09 PM | 显示全部楼层
记得, 在 c 里, c string, 即 char array, 不能用 =,要 copy, 的用 strcpy()
回复

使用道具 举报

 楼主| 发表于 2-12-2009 10:24 PM | 显示全部楼层

回复 4# onlylonly 的帖子

原来。。多谢大大。。
lecturer未教到。。。
回复

使用道具 举报

发表于 2-12-2009 11:04 PM | 显示全部楼层
c-string 用 = 其实是很多初学者常犯的错误, 以后千万要小心。

c-string 可以用 assigment operator, 即 = 是, 只有在initialization, 如
  1. char name[10] = "mary"; //correct

  2. char address[200];
  3. address = "1, abcde";  // wrong
复制代码
你若要 copy string, 可以用 library 的 strspy, 活manual assign character

strcpy

syntax:   strcpy( <copy 去哪里? > , < 重那里 copy ?> );

example
  1. char firstName[10] = "mary";
  2. char secondName[10];

  3. strcpy( secondName, firstName); // copy mary from firstName to secondName
复制代码
OR
  1. char name[10];

  2. strcpy( name, "mary";
复制代码
你若要用 manual copy char by char, 那么久用 loop 来 copy, 如 for loop
  1. char firstName[4] = "mary";
  2. char secondName[4];

  3. for(int i = 0 ; i < 4; i++)
  4.          secondName[i] = firstName[i];
复制代码

[ 本帖最后由 onlylonly 于 2-12-2009 11:05 PM 编辑 ]
回复

使用道具 举报

Follow Us
发表于 2-12-2009 11:08 PM | 显示全部楼层
哦, 对了, 要用 strcpy, 那么要 include string.h

  1. #include <string.h>
复制代码
回复

使用道具 举报

 楼主| 发表于 3-12-2009 11:48 AM | 显示全部楼层
多谢大大。。我会记下这些。。
还有。。
我要如何用loop 去 validate input只可以打英文字母。。
回复

使用道具 举报


ADVERTISEMENT

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2026 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 8-5-2026 09:58 AM , Processed in 0.091962 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表