#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFER_SIZE 1024
void fetch_stock_price(const char* symbol) {
char command[256];
char buffer[BUFFER_SIZE];
// Replace with your own API key
const char* api_key = "YOUR_API_KEY";
// Construct curl command to fetch stock price
snprintf
(command
, sizeof(command
), "curl -s \"https://w...content-available-to-author-only...e.co/query?function=GLOBAL_QUOTE&symbol=%s&apikey=%s\" > stock.json",
symbol, api_key);
// Execute curl command
// Open the file for reading
if (!fp) {
perror("Error opening file");
return;
}
// Read file contents into buffer
// Naive parse: look for "05. price"
if (strstr(buffer
, "\"05. price\"")) { char
* price_str
= strchr(buffer
, ':'); if (price_str) {
price_str += 2; // skip ": "
price_str
[strcspn(price_str
, "\"")] = '\0'; // trim quotes/newlines printf("Current price of %s: %s\n", symbol
, price_str
); }
}
}
}
int main() {
char symbol[10];
while (1) {
printf("Enter stock symbol (or 'exit' to quit): "); scanf("%s", symbol);
if (strcmp(symbol
, "exit") == 0) break;
fetch_stock_price(symbol);
printf("\nWaiting 15 seconds before next input...\n"); sleep(15); // Avoid hitting rate limit }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKI2RlZmluZSBCVUZGRVJfU0laRSAxMDI0Cgp2b2lkIGZldGNoX3N0b2NrX3ByaWNlKGNvbnN0IGNoYXIqIHN5bWJvbCkgewogICAgY2hhciBjb21tYW5kWzI1Nl07CiAgICBjaGFyIGJ1ZmZlcltCVUZGRVJfU0laRV07CgogICAgLy8gUmVwbGFjZSB3aXRoIHlvdXIgb3duIEFQSSBrZXkKICAgIGNvbnN0IGNoYXIqIGFwaV9rZXkgPSAiWU9VUl9BUElfS0VZIjsKCiAgICAvLyBDb25zdHJ1Y3QgY3VybCBjb21tYW5kIHRvIGZldGNoIHN0b2NrIHByaWNlCiAgICBzbnByaW50Zihjb21tYW5kLCBzaXplb2YoY29tbWFuZCksCiAgICAgICAgImN1cmwgLXMgXCJodHRwczovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY28vcXVlcnk/ZnVuY3Rpb249R0xPQkFMX1FVT1RFJnN5bWJvbD0lcyZhcGlrZXk9JXNcIiA+IHN0b2NrLmpzb24iLAogICAgICAgIHN5bWJvbCwgYXBpX2tleSk7CgogICAgLy8gRXhlY3V0ZSBjdXJsIGNvbW1hbmQKICAgIHN5c3RlbShjb21tYW5kKTsKCiAgICAvLyBPcGVuIHRoZSBmaWxlIGZvciByZWFkaW5nCiAgICBGSUxFKiBmcCA9IGZvcGVuKCJzdG9jay5qc29uIiwgInIiKTsKICAgIGlmICghZnApIHsKICAgICAgICBwZXJyb3IoIkVycm9yIG9wZW5pbmcgZmlsZSIpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBSZWFkIGZpbGUgY29udGVudHMgaW50byBidWZmZXIKICAgIHdoaWxlIChmZ2V0cyhidWZmZXIsIHNpemVvZihidWZmZXIpLCBmcCkpIHsKICAgICAgICAvLyBOYWl2ZSBwYXJzZTogbG9vayBmb3IgIjA1LiBwcmljZSIKICAgICAgICBpZiAoc3Ryc3RyKGJ1ZmZlciwgIlwiMDUuIHByaWNlXCIiKSkgewogICAgICAgICAgICBjaGFyKiBwcmljZV9zdHIgPSBzdHJjaHIoYnVmZmVyLCAnOicpOwogICAgICAgICAgICBpZiAocHJpY2Vfc3RyKSB7CiAgICAgICAgICAgICAgICBwcmljZV9zdHIgKz0gMjsgIC8vIHNraXAgIjogIgogICAgICAgICAgICAgICAgcHJpY2Vfc3RyW3N0cmNzcG4ocHJpY2Vfc3RyLCAiXCIiKV0gPSAnXDAnOyAgLy8gdHJpbSBxdW90ZXMvbmV3bGluZXMKICAgICAgICAgICAgICAgIHByaW50ZigiQ3VycmVudCBwcmljZSBvZiAlczogJXNcbiIsIHN5bWJvbCwgcHJpY2Vfc3RyKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmY2xvc2UoZnApOwp9CgppbnQgbWFpbigpIHsKICAgIGNoYXIgc3ltYm9sWzEwXTsKCiAgICB3aGlsZSAoMSkgewogICAgICAgIHByaW50ZigiRW50ZXIgc3RvY2sgc3ltYm9sIChvciAnZXhpdCcgdG8gcXVpdCk6ICIpOwogICAgICAgIHNjYW5mKCIlcyIsIHN5bWJvbCk7CgogICAgICAgIGlmIChzdHJjbXAoc3ltYm9sLCAiZXhpdCIpID09IDApCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICBmZXRjaF9zdG9ja19wcmljZShzeW1ib2wpOwoKICAgICAgICBwcmludGYoIlxuV2FpdGluZyAxNSBzZWNvbmRzIGJlZm9yZSBuZXh0IGlucHV0Li4uXG4iKTsKICAgICAgICBzbGVlcCgxNSk7ICAvLyBBdm9pZCBoaXR0aW5nIHJhdGUgbGltaXQKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUFFER_SIZE 1024
void fetch_stock_price(const char* symbol) {
char command[256];
char buffer[BUFFER_SIZE];
// Replace with your own API key
const char* api_key = "YOUR_API_KEY";
// Construct curl command to fetch stock price
snprintf(command, sizeof(command),
"curl -s \"https://w...content-available-to-author-only...e.co/query?function=GLOBAL_QUOTE&symbol=%s&apikey=%s\" > stock.json",
symbol, api_key);
// Execute curl command
system(command);
// Open the file for reading
FILE* fp = fopen("stock.json", "r");
if (!fp) {
perror("Error opening file");
return;
}
// Read file contents into buffer
while (fgets(buffer, sizeof(buffer), fp)) {
// Naive parse: look for "05. price"
if (strstr(buffer, "\"05. price\"")) {
char* price_str = strchr(buffer, ':');
if (price_str) {
price_str += 2; // skip ": "
price_str[strcspn(price_str, "\"")] = '\0'; // trim quotes/newlines
printf("Current price of %s: %s\n", symbol, price_str);
}
}
}
fclose(fp);
}
int main() {
char symbol[10];
while (1) {
printf("Enter stock symbol (or 'exit' to quit): ");
scanf("%s", symbol);
if (strcmp(symbol, "exit") == 0)
break;
fetch_stock_price(symbol);
printf("\nWaiting 15 seconds before next input...\n");
sleep(15); // Avoid hitting rate limit
}
return 0;
}