如何解决将字符串的特定部分转换为整数
* 更新了我将字符串存储到结构中的方式
我的结构如下:
struct patient {
char name[30],ID[8];
int age,phoneNo;
};
并且我编写了以下代码:
int searchName()
{
char search[30];
char record[60];
const char s[2] = ",";
struct patient c;
char a[8];
int IDno;
FILE* fPtr;
fPtr = fopen("patient.txt","r");
printf("Enter name to search : ");
getchar();
fgets(search,30,stdin);
//remove the '\n' at the end of string
search[strcspn(search,"\n")] = 0;
while (fgets(record,60,fPtr))
{
// strstr returns start address of substring in case if present
if (strstr(record,search))
{
char* pStr = strtok(record,",");
if (pStr != NULL) {
strcpy(c.ID,pStr);
}
pStr = strtok(NULL,");
if (pStr != NULL) {
strcpy(c.name,");
if (pStr != NULL) {
c.age = atoi(pStr);
}
pStr = strtok(NULL,");
if (pStr != NULL) {
c.phoneNo = atoi(pStr);
}
}
}
printf("%s",c.ID);
strcpy(a,c.ID);
printf("\n%s",a);
IDno = atoi(a);
printf("\n%d",IDno);
return 0;
}
该代码允许我搜索文件中的字符串,使用strtok
将字符串分成较小的字符串,然后将其存储到结构中。假设我将字符串“ PT3”存储到结构中的c.ID
中。在我的程序中,我试图将字符串“ PT3”从c.ID
复制到a
,然后使用a
将IDno
转换为整数atoi
。我对此不太确定,但是我认为通过使用atoi
将“ PT3”转换为整数,{整数{3}”将仅保留在IDno
中,这正是我想要的时间。
编辑:问题似乎是我无法使用atoi
将“ PT3”转换为整数。希望能帮助您将“ PT3”中的数字“ 3”存储到IDno
中。
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。